Week 04

electronic production


First time producing a PCB -printed circuit board-? Same for me. The info below may be usefull:

Fablab's english tutorial is a good one to start with. Here's another one that provides a more extended summary of a basic electronic board production.

Another usefull tutorial with basic Bash comands is this one(will be usefull later on).

A board from scratch

PCB Milling. Bachelor #1

We were supposed to use a machine that worked with fabmodules pages and G-codes where most used steps would be open png file from fabmodule platform and then generating a g-code the milling machine would read. However, this machine was unepectedly not working so we had to do all the milling with a locally built machine (GAVA_milling) that operates with a universal g-code. This means I skipped the fabmodule g-code step.

We used this CNC controller java application to set the milling. Then did a couple of tests but the milling was not working properly the Z axis movement was not working accurrately. What I did found pretty amazing about this machine is that the zero in the Z axis was set with not only a sinlge point but a number of ponts that came out from a scanning. This avoids differemte depth in milling.

PCB Milling. Bachelor #2

Second try was with this machinine called Zmorph. What's good about it is that it can be used with multiple toolheads and have as a result multiple functions (from milling to 3d printing).

This machine in particular works with both, SD cards or dicrect USB connection. We used the last choice.

We needed to to set both, the machine and the computer program to use the milling funcion. (See workflow 2d milling in screen). The program we used for sending information (g-code) to the machine is called:

Fixing the PCB board to the the machine looks like a simple task BUT it's no task to take for grated. Make sure you measure and set the right zero in your computer (z axis control) -> NOTE: Good to use double tape and cover the complete surface of the board. This will help to prevent the board from bending and therefore the difference of depth when milling. (see what happens next)

Basic parameterrs were used to set everything up in Eagle (name of program we used). Since every machine has its own parameters and setting it took four milling tests to reach the right template settings.

After setting everything up the fisrt test was supposed to take about 35 minutes and we stoped the milling before it even ends: needed to adjust parameters.

The first test had two possible issues: the depth of the cutter did go too deep. The offset distance may also have been too big.

Thus, we changed both parameters for the second test. Changing two parameters simoultaneously can be confusing since it's not clear the influece of each one in the result. I recommend to change one parameter (depth or offset) at a time.

This lead to a 3rd, 4th and 5h test. More values for both, offset and depth to be tested.

Looking through a magnifying glass helped to detect flaw areas. Below (left image) a diagonal mill (possibly a machine bug) that will have to be solded in order to "reconstruct" the electricity path.

Another error we had was difference in depth of milling. This may have been for variation in thick of board, not double taping the whole surface of the board etc. When that happened we increased the milling depth.

PCB Milling. Back to Bachelor #1

Back to our first choice. Zmorph did its part but solding would have been extremelly difficult because the milled offset wasn't really enought. So we milled the final PCB boar with the locally built GAVA_milling:

Setting first the shcematic file (lil reminder, this machine works with universal g-code so fab-modules was nor used or needed here. Software used for schematic file: Eagle.

Had to first set the milling area with command G92 and M114. Find a complete list of codes here.

What's lovely about thismachine is the leveling function. As experienced before a very very small concave bend in the PCB can weaken the millin in a particular area. Not anymore cause (everybody dance now) this machine can level a certain area by scanning a given density of x,y points. Setting up the area to be leveled:

Red and white borns are added to create a circuit meaning: once the cutter is going down and reaches the cooper PCB top the circuit is closed and the cutter goes up again to find the next point to be scanned.

Afterwords we setted up milling parameters (offset and depth) and started (milling area and XY starting point were already setted). Won't dig much into test values since they're well developed in bachelor #2 story.

Above the CNC controller progress. Every milled point location is shown on the screen with their XY coordinate (Z is inferred after the autolevel) and preceeded with G01 value since to-be-milled pint are located in the work area.

Estimated shown time is way off reality. It ususally takes twice as long as the given value.

Board Parts and solding

I chose (as you saw at the milling part the FabISP version. This is a variation of the basic board which I founded quite cool.

See how pretty and wavy the last component is? That's because the last piece in the list (resistor) is not a surface mounted one. This is because we did not have a surface mounted 1.5 resistor available. We changes our mind on circuit milling at the last minute and as a result required components changed too.

Solding was as frustrating as it looked like. Well, not for those who did bracelets for selling in street markets in Montevideo (me forced by others, shh, do not tell.)

Here's an (almost) step by step solgind guide with tips I founded usefull.

Neil's advice did help a lot. Make sure you sold the biggest parts at the beggining as well as solding from the center of the board towards the pcb borders.

It's always usefull (and essential to be honest)to test connections are working properly. I advice to test connections au fur et à mesure (gradually) with every new component you sold. This way you avoid unsolding or resolding when the board is already crowded and you risck of being less precise.

Above beautiful hand (and bracelet) of Caro (fablab mentor) posing for my picture


From programee to programee, yes programee.(did not work)

I followed thistutorial and it looked pretty easy and fast at first glimpse.

I made sure I had changed the programmer name (cause I used a USBasp programmer) and had to change the Make file first:

So above I changed both, the name of the programmer and the hashtag in from the 2nd to the 1st line. (This is because I milled the USBTiny fabISP and used the USBasp as programmer.)**this did not worked the first time - See Programming (part two below)**

Pretty easy and fast until (of course) I got to the make fuse par where I got this error:

avrdude -c avrisp2 -P usb -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m avrdude: usbdev_open(): did not find any USB device "usb" make: *** [fuse] Error 1

I am not 100% sure of what happened but the USBasp (the programmer I wanted to use) was not recongnized by my mac. I looked up at several tutorials, google every googleable thing, try programming it with an arduino board instead of the programmer we had at the lab (USBasp) and it did not work, again.

So I tryed once more with the USBasp and it worked.. meaning:

Anyway, once my mac recognized the USBasp programming board I could move forward and re-try doing it with IDE and USBasp. I may have something to do with dowloading the last updates but I'm not 100%sure that was the issue.

From programee to programer (PART TWO)

Again, I worked with fabISP and USB asp as programmer. I used the same makefile specified above and then:

Make clean

Make Hex

Make fuse


Go backto the INDEXor to thefollowing WEEK?

Creative Commons License
Please respect license terms. More info here