Skip to content

4. Electronics Production

Individual assignment: make and test a microcontroller development board

Milling the board

The individual assignment for this week was to make and test a microcontroller development board. The board design linked in the schedule was the Quentorres, so our lab decided to use that, and to mill out these boards on the Othermill Pro machines.

To start off, I needed to take the FR-1 PCB material and then apply double-sided nitto tape to the bottom. After placing it in the bed, I opened the file in the Bantam Tools Software. I used the Othermill’s probing feature to measure the material thickness.

I ran the job with three bits: the 1/16” bit, the 1/32” bit, and the 1/64” bit. These had to be selected in the Bantam software (under File Setup) so that it could generate a toolpath. After the file was configured, I clicked the “GENERATE GCODE NOW” button to generate the toolpath for the machine to follow. After that, I ran the job: Image Later, I used a vacuum to clean up the board and then took it out of the milling machine: Image The copper (at the top left of this photo) seems to have gotten slightly cracked from when the board was being cut out as an outline. Fortunately this did not impact the actual electronics.

Soldering the board

I first soldered the XIAO RP2040 microcontroller board, putting tape under it to prevent the contacts at the bottom of the board contacting in unexpected ways. For soldering the RP2040, I applied solder to one corner first, brought the RP2040 to its intended location, heated up the corner to join it with the RP2040, then applied solder to the rest of the contacts. Image In a similar way, I soldered other components, including the resistors, LEDs, and button: Image Then, I soldered the header: Image

Testing the board

To test the board, I installed Arduino IDE on my computer and plugged the board to my computer via a USB-C port. Initially, the LED on the RP2040 itself began to blink red, blue, and green (which was the default program installed by the manufacturer). I used Richard Shan’s code to get the board to blink:

void setup() {
  pinMode(1, OUTPUT); //bottom right LED
  pinMode(26, OUTPUT); //top left LED
  pinMode(0, OUTPUT); //bottom left LED
}

void loop() {
  digitalWrite(1, HIGH); //turns bottom right LED on
  digitalWrite(26, HIGH); //turns top left LED on
  digitalWrite(0, HIGH); //turns bottom left LED on

  delay(1000); //waits for 1 second

  digitalWrite(1, LOW); //turns bottom right LED off
  digitalWrite(26, LOW); //turns top left LED off
  digitalWrite(0, LOW); //turns bottom left LED off

  delay(1000); //waits for 1 second
}

After this, I got the board to successfully blink all three LEDs at once:

Reflections

In this unit I learned how to mill PCB boards on the lab’s Othermill Pro machines

This is the link to this week’s group assignment.