Skip to content

4. Electronics production

During this week, the assignement was :

  • characterize the design rules for your in-house PCB production process
  • make and test a microcontroller development board

At the begining, we have done the group assignement here to characterize the design rules for in-house PCB production process.

Hero shot

1. Making the microcontroller board

This microcontroller was built following the instructions on the page Quentorres. swd+uart adapter+hello board - xiao rp2040.

1.1. The drilling

To do the drilling, I use the Roland SRM-20 and the mods project software . I choose the 2D cutter in the cutter section of the SRM-20 and fill in the parameters as follows: 0.1 mm depth min and max, with a 0.1 mm diameter cutter, offset of 4, stepover 0.5 and 1.5 mm/s speed.

At first, I didn’t get very convincing results, with unclear edges and what appeared to be an accumulation of material on the edges.

But with a little polishing, using sandpaper, the result was clear.

1.2. The soldering

At first, I look for all the components I need and place them on my plate, to make sure I haven’t forgotten anything.

Then I solder one component at a time. It was a real challenge because of the thickness of the components. I even burnt an LED that had stuck to my soldering iron. I also put the LEDs the wrong way round at first. I realised this when I plugged in my plate. One LED didn’t light up briefly at first, so I took the multimeter and saw which way the electricity was flowing.

Then I open the Ardwino IDE to check that my microcontroller is working. First I go to file, preferences and put this URL in the add-in card manager:

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Next, I download the Raspberry Pi Pico/RP2040 from F.Philhower by going to tool, board manager and searching for pico. Then I select the “Seeed XIAO RP2040” board. At first, I didn’t select a COM, so I get this message:

Compile error: exit status 0xc0000142

After a few attempts and searching, I finally connect the correct COM, which for me is 6. To test, I choose a simple ob blink test by going to file, example, basic, blink and I replace the LED_BUILTIN by 1 like this:

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(1, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  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
}

I click on upload and here’s the result:

2. The Files

here you can find the Ardwino code.