Skip to content

5. Electronics production

This week I worked on group assignment: characterize the design rules for your PCB production process individual assignment: make an in-circuit programmer by milling the PCB and soldering it with components.

Started

PCB Milling Roland SRM 20 is the machine we used for this assignment. As a small milling machine, the SRM-20 offers compact size and powerful functionality at an affordable price. Production of realistic parts and prototypes is made simple and convenient with a device that fits into any office, studio, or classroom environment. For users looking for advanced milling capabilities without the need for expert operating skills, the SRM-20 is one of the easiest and most precise CNC mills in its class. MonoFab SRM-20 Specifications

Software used SRM 20 [V-Panel] here

Step 1 obtain the Test files

We simply downloaded the PNG file from the Fabacademy Schedule page then using Fabmodules we made .RML file

# Step 2 Modules

We opened the FabModules Page. And in the input format, selected ‘image.png’ option for the traces image. Then, output format - roland mill (.rml) and process - PCB traces (1/64) we always use the same x0,y0,zO that you used for the trace files or both cuts will not match. select the machine as mine was roland SRM 20 and click calculate

Output

Building the FabTinyISP

FabTinyISP: This version (the “FabTinyISP Minimal” is a minor revision to Zaerc’s version 0.3 (Bas), with small modifications:

The reset switch and target power switch have been removed. The reset switch adds cost and isn’t incredibly useful on an ISP programmer, as the target can be easily reset through a software command. The target power swtich has been removed as providing power to the target through the programming port is usually discouraged. Users who understand the implications of this are welcome to build one of the FTS designs with the switch. The copper ground pour has been removed and replaced with individual ground traces; this allows novice solderers to mill away more of the copper. All components solder to clearly defined pads on both sides. The extra pads connecting to the USB data lines were removed; this version is targeted solely at being an ISP programmer rather than being a general-purpose tiny45 board.

The PTC thermistor was removed; as this part currently isn’t in the inventory most users would build it with a 0Ω resistor anyway. As the option to provide target power has been removed, it should be much more difficult to create a condition where the polyfuse would be needed. The Makefile has been replaced. Targets for programming the fuses on an ATtiny45 have been added. The original Makefile also results in problems on case-insensitive filesystems (i.e. Windows). This page describes how to build, program, test, and debug the board.

Issues

We don’t had material available in lab for vinyl cutter to create PCB circuits.

We were not having the proper soldering wire, double sided tape and hex key available in lab

Worst of all the milling machine sacrificial layer and bed was not leveled resulting in non creation of proper traces and we spent most of our time debugging and fixing the machine rather than focussing on the week’s assignment.

PCB

Boardfile

open and process the above image in Fabmodules

open the fts_mini_cut for cutting the outlines.

Open the VPanel for milling the prepared files. Click on “cut” to select the downloaded rml file and then click on “output” to start milling. Now, mill the PCB.

Download the PNG files for the traces and the board outline here and here

After downloading the traces and the outlines for the PCB fabrication. We again used FABMODULES to calculate and save the .rml files

The output of file looked like this :

Assembling the PCB

The obtained components are :

1x ATtiny45 or ATtiny85
2x 1kΩ resistors
2x 499Ω resistors
2x 49Ω resistors
2x 3.3v zener diodes
1x red LED
1x green LED
1x 100nF capacitor
1x 2x3 pin header

Soldering the components

First Component

Few more

Final Output

Programming FabISP

For programming the FabISP I followed the instructions given on Brian’s page

Steps:

First, download the Atmel AVR toolchain and extract the files in c:\program files.

Download GNU Make and install in c:\program files(86) directory.

Install avrdude.

Then, update the path to tell the windows where to locate the tools you’ve just installed. Follow instructions on Brian’s page.

Download Zadig to install the drivers.

Connect the FabISP, select AVRISP mkII as the programmer and install libusb-win32 driver.

Use below commands for Sanity check

Next step is to download the firmware file. Unzip and extract the files. Open your terminal program and navigate to the directory(firmware) and run make command. It will generate a hex file (firmware_fts.hex).

Open the hex file and change the name of the programmer from usbtiny to avrispmkii

Connect the board to the USB jack and programmer to the ISP header of the board. Make sure the orientation is right(MISO –> MISO). Run make flash. This will erase the target chip, and program its flash memory with the contents of the .hex file you built before. Run the make fuses command. This will set up all of the fuses except the one that disables the reset pin. Run make rstdisbl. This does the same thing as the make fuses command, but this time it’s going to include that reset disable bit as well.

Learnings

I successfully milled the PCB using monoFab milling. Got to know about FabISP. Successfully programmed the FabISP to make it program other boards