Skip to content

5. Electronics production

Objectives

Group (To redirect to group assigment page Click here)

  • characterize the design rules for your in-house PCB production process
  • extra credit: send a PCB out to a board house

Individual

  • make an in-circuit programmer that includes a microcontroller:
  • extra credit: customize the design
  • mill and stuff the PCB
  • test it to verify that it works
  • extra credit: try other PCB processes

Group

Resolution Test

It’s critical to determine the resolution of each bit before printing the in-circuit board. To do so, we used the file below to mill a FR1 board.

groupmillig.jpg

Setting up machine

If the bit is not 1/64, change it. Using an allen key, make sure the shank is kept as far inside the head as possible. Apply a double-sided adhesive sticker on the back of the board and paste it over the sacrificial layer.

Setting up and sending files via Mods

Select the machine from the landing page and upload the image in the Read Png node and select the mill traces(1/64) in Set PCB defaults node keeping the default settings click on calculate in mill raster 2D node make sure to orgin the tool head Rolend MDX/ iModelsclick send file in WebSocket pyserial after opening socket and open port.

modreselution.jpg

This initiate the milling process and the machine start to trace the PCB make sure thee bit inserted in the tool head is 1/64”

change the bit to (1/32) and import the outline png to cut the PCB out.

now repeat the same text using 1/32 bit and 1/10 bit

comparisonmill.jpg

Group assigment results

After the examination, we came to the conclusion that

  • 1/64 bit
    • speed: 6,500 rpm
    • feed rate: 240 mm/min
    • plunge rate: 0.004 in
    • depth of cut: 0.004 in
    • can trace upto 0.16 mm
  • 1/32 bit
    • speed : 6,500 rpm
    • feed rate: 240 mm/min
    • plunge rate: 0.024 in
    • depth of cut: 0.072 in
    • cannot be used to make traces better to use as a cutting tool
    • speed : 6,500 rpm
    • feed rate: 120 mm/min
    • plunge rate: 0.004 in
    • depth of cut: 0.004 in
    • 1/10 bit can trace upto 0.11 mm

Other PCB processes

Uploaded the Line_Test file to CBA mods and traced the PCB on a flexible copper sheet using vinyl cutter

vi nylcpr

Milling the In-Circuit Programming

For making the UPDI programmer, I used the file from “https://gitlab.fabcloud.org/pub/programmers/programmer-updi-d11c”.  A programmer is a device that allows a PC to communicate with an IC to upload information about how the IC should behave in the future.

UPDI_Cut.jpg

Inkscape was used to make a small modification to the PCB footprint by putting my initials to the bottom side.Using CBA Mods, the altered file was printed. The traces were made with a 1/64 bit, and the PCB was cut with a 1/32 bit. The machined output is next sandpapered for a clean finish and the connectivities are tested with a multimeter.

Stuffing & Soldering

Listed the required components for making the UPDI on a paper and collected the components from the fab inventory

solderingcomponents.jpg

heated the soldering iron to 360°C and soldered each components on to the board.

soldering and checking.jpg

Using a multimeter, I ensured that there are no errors while soldering.

updioutput.jpg

Testing & Programing

After I finished soldering the board, I used a multimeter to check for continuity. The boot loader for the UPDI to initiate USB communication was then uploaded using a SWD programmer using a aurdino IDE. To do so, go to Files > Preferences > Additional Boards Manager URLs > Paste the URL given below

https://raw.githubusercontent.com/qbolsee/ArduinoCore-fab-sam/master/json/package_Fab_SAM_index.json

via swd.jpg

Then, from Tools > Boards: “xxxx” > Board Manager I downloaded the Fab SAM core for Aurdino. Now, after changing Board: “xxx” to Board: “Generic D11C14A” and Programmer to Atmel EDBG, simply click on Burn Bootloader.

1 / 7
2 / 7
3 / 7
4 / 7
5 / 7
6 / 7
7 / 7

We may set aside the SWD programmer now that our programmer knows how to interact through a USB connection. Simply attach our UPDI Programmer to a USB port straight.

direct usb.jpg

after cloning the SAMD11C serial repository from qbolsee’s repo open the SAMD11C_serial.ino from the cloned file and upload the program to the UPDI programmer *note change the port to a corresponding one from Tools

1 / 2
2 / 2

The board is now verified to be working after the program was successfully uploaded and the physical connections were tested and verified.