Skip to main content Link Search Menu Expand Document (external link)

PCB Design – Handmade Coin-sized Programmable Board

Table of contents
  1. PCB Design – Handmade Coin-sized Programmable Board
    1. Group Assignments for PCB Design
    2. PCB Schematic Design
      1. Schematic Design Result
    3. PCB Layout Design
      1. Layout Design Result
    4. PCB Fabrication of Designed Board
    5. PCB Soldering of Designed Board
    6. Testing and Debugging of Designed Board
      1. Testing and Debugging
      2. Own Program using the LED and Button
        1. [CODE] led_flip_button.ino
    7. Conclusion
    8. Acknowledgement

Group Assignments for PCB Design

Use the test equipment in your lab to observe the operation of a microcontroller circuit board.

As shown in Week 4 of EECS Group Assignments, we used the test equipment in the lab to observe the operation of a microcontroller circuit board (ATSAMD11C14, Microchip).

PCB Schematic Design

Inspired by the design of Week 2 and echoing the design ideology of Dieter Rams, where

Good design is as little design as possible.

I try to design a compact PCB board which can still be easily hand soldered. As shown in the teaser image and the final result, I managed to make a functional PCB of size similar to a quarter coin.

Schematic Design Result

First, following the schematic design of the sample board, I drew the schematic diagram of the board and added a LED and a button for some programming tests on Fusion 360 (Eagle). The schematic diagram is shown below.
image

I deleted a pull-up resistor (R1) on the button since Anthony reminded me that the pins of the ATSAMD11C14 are internally pulled-up. I also added a 1kΩ resistor on the LED to limit the current to 3.3mA, which is below the maximum current (20mA) and would would give descent brightness for indication.

I also added two zero resistors (R0 and R2) as the jump wires. R0 is from the reference design. And R2 is to avoid going through the pins of the regulator, which is not recommended and proved to be a good practice.

PCB Layout Design

Then, I drew the PCB layout on Fusion 360 (Eagle). The PCB layout is shown below.

Layout Design Result

image

I’ve fixed a couple of issues as detailed in the acknowledgement. All wires are 10 mils except for wires below two ICs (8 mils to make it easy to connect). Anthony helped me fix the 5×2 connector issue in the old Fab Library, which is different from that on Fusion 360 Teams. And the old one prevents me from adding a wire going below the connector even with 8 mils of the wire.

PCB Fabrication of Designed Board

Similar to Week 2, I used the milling machine (Roland SRM 20 to mill the traces and the boundaries of the board. It’s simple and easy to use, especially since the software accepts the Fushion 360 design files .brd and would automatically generate traces. One thing I forgot to do is removing the old board shape lines and the milling software was complaining about out-of-frame error. Yuval reminded me of that and helped me fix it.
image

As you can see from the image, the upper part of the board is mis-milled. This is because the raw board did not stick strong enough to the milling bed and it vibrates while milling. I did an early stop to prevent it from breaking the board. Since there are no wires on this side, it turns out to be fine and will still be enough space to put elements.

PCB Soldering of Designed Board

Then I turned to solder the board. At first I thought it might still be really chanllenging to solder the SMD IC and the 5×2 connector. Then I realized that I can use one of the SMD soldering technique. First, apply some solder to the tip of the iron and touch the circuit board to leave good amount of solder evenly on the pads. Then, place the component on the pads and use the iron to heat the connection point of the pin and the pad (press the component to avoid the vertical gap between the pad and the pin). This will melt the solder and make a nice and solid connection.

image
Designed PCB before soldering (components on)
image
Designed PCB after soldering

Regarding the orientation of the LED, Anthony and another EECS shop mate told me that it mimics the bar of the PN node of a diode, where the green bar is to the ground. So I flipped the LED before soldering. Before testing, I removed the tip of the USB connector to avoid mis-connection.

Testing and Debugging of Designed Board

Testing and Debugging

Following the SAMD11 Arduino guide, I tested the board by firstly burned bootloader to make the board recognizable by Arduino IDE. Then I compiled a simple C++ program to use the serial port for communication.
image

The Hello World demo is shown below. image

Own Program using the LED and Button

[CODE] led_flip_button.ino

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// led_flip_button.ino
const int pin_btn = 2; // Pin of the button
const int pin_led = 4; // Pin of the LED
int val = 0; // current status of the button
void setup() {
  pinMode(pin_led, OUTPUT);
  pinMode(pin_btn, INPUT);
}
void flip_led() {
  digitalWrite(pin_led, !digitalRead(pin_led));
  delay(1000);
}
void loop() {
  val = digitalRead(pin_btn);
  if (val < HIGH) { // each time button pressed
    // flip the value of the LED
    flip_led();
  }
}

Conclusion

Last but not least, I successfully made a coin-sized programmable board, which is soldered by hand.
image

Acknowledgement

Thanks to Anthony for all his help and amazing enthusiasm in making throughout the process of PCB schematic design, fabrication, and debugging! I’ve got several tips that are essential and would wish I can tell myself a week ago (if we had a time machine, as argued by Neil).

PCB Layout Design

  • Use thinner wires inside some ICs.
  • Try not to go between the pins of the regulator IC (which is especially TRUE after I looked at the milled board since there is no space for wires).
  • Use the update-to-date version of Fab Library (on Fusion 360 Eagle Teams).

PCB Fabrication and Debugging

  • Sand the surface of the board before soldering.
  • For on-chip multi-pin ICs, use the SMD soldering technique. First, apply some solder to the tip of the iron and touch the circuit board to leave good amount of solder evenly on the pads. Then, place the component on the pads and use the iron to heat the connection point of the pin and the pad (press the component to avoid the vertical gap between the pad and the pin). This will melt the solder and make a nice and solid connection.
  • When checking each pin connection, try not press the pins, just gentle touch them since that’s the status when they are functioning. It turns on this tip helped me find two major false connections on my board.