ELECTRONICS PRODUCTION

Individual assignments

  • Make and test a microcontroller development board that you designed

During this week, the design of a PCB board was carried out, it was manufactured and tested to verify the correct procedure involved in PCB creation. Without a doubt, it is important to remember that circuit design was learned for the creation of this board, so this week it is extremely necessary to include this knowledge and apply it in a functional prototype.

Simulation

During this week, the following phases can be observed:

  • Circuit design in Altium
  • PCB design in Altium
  • Export of files to Gerber
  • Transformation of Gerber files to PNG images
  • Configuration of CNC machine parameters for cutting
  • PCB manufacturing
  • Component soldering
  • PCB board testing

Circuit Design in Altium

First, to create the PCB board it is necessary to think about what you want to do and what the purpose of the PCB is. Based on this, I decided that my design should include LEDs, since I consider them to be some of the most basic components that can exist, but that can be used creatively (such as for indicating things). Likewise, my board needed to have pins to connect external elements if needed. Finally, I added a button and the corresponding resistors.

Simulation

The microcontroller I would use was a XIAO RP2350. From this, considering the pinouts of this microcontroller, I placed them according to what I might need. For this, I considered digital and analog pins, UART, and IIC (using SDA), since they correspond to what I plan to use in the future. Once these were connected, I established the power pin and the pins corresponding to the LEDs that I would integrate. Finally, for both the LEDs and the button, I added their corresponding resistors. In the case of the button, I integrated a pull-up and pull-down system.

Simulation

What is a pull-up and pull-down system?

They are configurations used in electronics that ensure a defined logic state, which avoids false readings.

Once connected, as learned, I verified that all design rules were met in order to move the circuit to PCB.

PCB Design in Altium

Once the circuit is established, it is transferred to PCB. From there, each component must be arranged. For this, I considered the input port of the microcontroller, as well as placing pins on the sides of the microcontroller to create simpler connections. Finally, I integrated the rest of the components according to spaces that were closer to their corresponding pins.

Simulation

During this stage, I encountered a detail (easy to solve, fortunately!), in which I could not make connections between pins because they were enclosed by the traces. To solve this, I created a bridge with a zero-ohm resistor in those spaces where I could not complete the remaining connections.

What is bridging?

A zero-ohm resistor is used to connect two traces that do not touch. It can be seen as a connecting wire.

Once the components were arranged and wired, the shape of the board was defined.

Export of Files to Gerber

To export my files to Gerber (files with specific information layer by layer establishing the traces present in the design), I followed these steps:

  1. Select the .pcb file, then select File → Fabrication Outputs → Gerber Files. A window will appear where you can select the layers you want to export. In my case, I only worked with three, so I selected those and accepted.
  2. Considering that my design must have holes, to obtain them you must also select the .pcb file → NC Drill Files → A window will appear where the format to export the holes is established. In my case, I followed the default configurations, so I did not change anything in this step.

Once these steps are completed, Altium creates a folder where these files are saved, ready to continue with the next steps!

Transformation of Gerber Files to PNG Images

This step was very simple. I accessed the Gerber2png page. Then, from the folder generated by Altium, I selected the files and uploaded them. Immediately, in Quick Setup, the options Top Trace, Top Drill, and Top Cut appeared. I generated the images and then downloaded them. Done!

Simulation

Configuration of CNC Machine Parameters for Cutting

To configure the tool type, speed, and necessary parameters for cutting, I used Mods CE. In this, the required parameters for manufacturing can be defined.

Parameter for Drills

I selected Drill; the general parameters appeared, from there I mainly changed the speed to 0.2 and the origins to 0.

Simulation

Parameter for Traces

For engraving, these values are used. I also set Traces to 0.40 mm and adjusted the parameters accordingly.

Simulation

Parameter for Cutting

To finish and make the outline, I used Cutcut of 1.59 mm but changed the tool size to 2 mm.

Simulation

It is important to activate the files option so that the program that the CNC machine will follow is downloaded. At the same time, another window will open showing the simulations of each trace.

PCB Manufacturing

To manufacture the PCB board, an order is followed. First, the holes are made, then the traces, and finally the board is cut. In this way, the following steps were followed:

  1. Using a copper board, double-sided tape was placed on one side and it was fixed onto an MDF board.
  2. Simulation
  3. The VPanel for SRM-20 program was downloaded. This program was downloaded from links that were provided to us. It is important to consider that it only works if the CNC machine is connected to the computer.
  4. The board was placed in the support inside the machine and secured with nuts. This ensures that the board will not move during the trace process.
  5. The three cutting tools to be used were identified. The first was 0.8 mm, the second for traces, and the third 2 mm. With a wrench, the screw was loosened to insert the first tool; in my case, I placed it at a medium height. It was tightened properly.
  6. Simulation
  7. Then, opening the VPanel program, I began to move the CNC to establish the X/Y origins. Once I set the origin at the corner of my board, I selected X/Y on the right side and accepted it as the origin point.
  8. To calibrate Z, I slowly lowered the tool until there was a minimal distance between the tool and the copper board. It is important to leave a small gap, since lowering it without care can damage, break, or dull the tool. Once that distance exists, the tool speed is increased and it is slowly lowered until it touches the copper board. Care must be taken at the moment the tool touches the board, since it must touch it enough, but not deeply. Once the Z origin is established, the tool is raised and the speed is reduced.
  9. Once the origins are set, the program is run.
  10. When it finishes, the work area must be cleaned.
  11. Finally, the tool is changed again for the one used for the next engraving and the process of setting the Z origin is repeated.
  12. Once the process is finished, the boards are removed, the tools are cleaned, and everything is stored in its proper place.

Component Soldering

Power input error

For component soldering,

there is no specific technique that must be followed. However, I recommend soldering from the smallest components to the largest, to avoid collisions or limitations in the working area.

Unconnected pin error

To solder the components,

I used a bit of paste, placed it in the area to be soldered, and then used the soldering iron and solder to complete the joint. Regarding the soldering iron temperature, I allowed it to heat up to 270°. Usually, the range for soldering is between 290° and 300°, however, since it was my first time, I used a lower temperature.

Footprint assignment error

In this way,

I soldered all my components. Once finished, I used a voltmeter to check that no connections were made between traces.

PCB Board Testing

Once the board was finished, I connected the microcontroller to my laptop using a Type-C cable. To program the board, I downloaded Arduino IDE. Then, I added the library for this type of board.

Simulation

Steps to integrate the library

  1. Once Arduino IDE is installed, select File → Preferences. In Additional Boards Manager URL, I added the following link: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
  2. Simulation
  3. Then, in Board Manager, I searched for Raspberry Pi Pico/RP2040/RP2350 and downloaded it.
  4. Simulation
  5. Finally, I searched for the XIAO RP2350 board.

Finally, I performed a very simple test where I turned on the three LEDs to verify that everything worked correctly, and another test where the button could be used to turn them on. The codes used were:

Test 1: LED ON (blinking)


                    void setup() {
                        pinMode(D8, OUTPUT);
                        pinMode(D9, OUTPUT);
                        pinMode(D10, OUTPUT);
                    }

                    void loop() {
                        // Encender todos
                        digitalWrite(D8, HIGH);
                        digitalWrite(D9, HIGH);
                        digitalWrite(D10, HIGH);
                        delay(1000);

                    // Apagar todos
                        digitalWrite(D8, LOW);
                        digitalWrite(D9, LOW);
                        digitalWrite(D10, LOW);
                        delay(1000);
                    }
                

Test 2: LED ON with button


                    const int boton = D3;
                    const int led1 = D8;
                    const int led2 = D9;
                    const int led3 = D10;

                    void setup() {
                      pinMode(boton, INPUT); 

                      pinMode(led1, OUTPUT);
                      pinMode(led2, OUTPUT);
                      pinMode(led3, OUTPUT);
                    }

                    void loop() {
                      int estado = digitalRead(boton);

                      if (estado == HIGH) {
                      // Botón presionado → prender todos
                      digitalWrite(led1, HIGH);
                      digitalWrite(led2, HIGH);
                      digitalWrite(led3, HIGH);
                    } else {
                      // Botón suelto → apagar todos
                      digitalWrite(led1, LOW);
                      digitalWrite(led2, LOW);
                      digitalWrite(led3, LOW);
                    }
                }
                

In this way, I managed to manufacture a PCB board using a XIAO RP2350 microcontroller.

Conclusions

It is necessary to understand the operation of the design of an electronic system, since this is basically the brain of many projects. For me, it was important to learn and manufacture a PCB board, since acquiring this knowledge is enriching. PCB boards are extremely necessary for current technologies. Therefore, without a doubt, this week allowed me to learn how to manufacture boards and not only stay at their design, since these are skills that I will apply in the future for the construction of my final project.

If you want to access to my work from this week, please click here to download!

Finally, for the group assignment for this week, you can find the information here