ELECTRONICS PRODUCTION

Electronics is the branch of physics and technology concerned with the design of circuits using transistors and microchips, and with the behavior and movement of electrons in a semiconductor, conductor, vacuum, or gas.


CHECK LIST

Group assignment

  • Characterize the design rules for your PCB production process: document feeds, speeds, plunge rate, depth of cut (traces and outline) and tooling.
  • Document your work (in a group or individually)

Individual assignments

  • Link to the group assignment page
  • Document how I made (mill, stuff, solder) the board
  • Document that my board is functional
  • Explain any problems and how I fixed them
  • Include a ‘hero shot’ of my board

WARM UP EXERCISE

Don't know what these people is talking about.

During the pre fab we made some warm up exercises to understand this new language, at the beginig found ir really hard to understand because I've never done something like this before, but now it is starting to make sense. You can find the details of this previous process HERE


GROUP ASSIGNMENT

Find out the details of our common work al ZOI Here.


To understand the components I found these sites with definitions, it may seem very basic but it's been usefull.

Símbolos eléctricos y electrónicos.
Definiciones de componentes electrónicos.

BUILDING THE FAB TinyISP

Understanding little by little.

I'm completelly new in this field, so to start I'm just following instructions as told. This link was really usefull to understand what to do and how to do it
Building the FabTinyISP.
The FabTinyISP is a "low-speed" USB 1.1 device. This is the slowest (and one of the oldest) of the USB device types. Typically used for mice and keyboards, low-speed devices operate at 1.5MHz and have much less strict timing requirements, which enables a purely software-based implementation of the USB protocol to be used (the ATtiny45 does not have hardware USB capability).

PCB FABRICATION

First, what is a pcb? A printed circuit board (PCB) mechanically supports and electrically connects electrical or electronic components using conductive tracks, pads and other features etched from one or more sheet layers of copper laminated onto and/or between sheet layers of a non-conductive substrate. Components are generally soldered onto the PCB to both electrically connect and mechanically fasten them to it.
To create the traces and board outline I had to download the files here:

Traces (1000 dpi)
Outline cut (1000 dpi)

I added my initials on the board using illustrator, and exported as png.
You can find the file here:
Illustrator file.

Once we had the file ready we used mods to generate the G/code. On mods follow this steps:

  • Access to the software: mods
  • Right click, programs
  • Open server program
  • G-code
  • Mill 2D png

In mods, select the png file, set the parameters for the mill raster and the path for G-code. Once everything is ready press calculate and you'll get a simulation of the code in an pop up window.

Same steps for the contour, but different parameters:

FILES

Mods files

G-CODE SIMULATOR

A G-Code simulator is a type of software tool that provides a virtual representation of a CNC machine's tool path made by following the instructions in a G-Code file. They range from simple simulators that output a single image of the tool path to complex tools that can detect collisions and plot the path in 3D.

To make sure the parameters were right I used a G-Code simmulator, avaliable on this link:
G-code simmulator

AUTOLEVELER

The auto leveler, leveling instrument, or automatic level is an optical instrument used to establish or verify points in the same horizontal plane. It is used in surveying and building with a vertical staff to measure height differences and to transfer, measure and set heights.

To ensure that the tracing lines are even it was necessary to do an autoleveler. For this we installed it and load the .nc file with the traces, set the parameters and generate the autoleveler.

FILES

Autoleveling file for traces

CNC MILLING - WORKFLOW

We used the cnc machine which I find very precise and usefull in so many scales because the other machine for tracings wasn't working. These are the steps needed to mill the board:

  1. On the cnc, we used a wood board screwed to the cutting bed
  2. Hold the copper sheet with adhesive double-sided tape
  3. You can use an steel wool to remove coats or oxide layer from the cooper and clean it with a cloth with alcohol.
  4. Place the milling bit

The next step is to cut the outline, to do this it is necessary to:

  1. Change the mill (to the one with the wider angle)
  2. Upload the G-code
  3. Start the milling process

The tools we used for engraving and cutting the board:

worflow to send the file to the CNC

  1. Copy the file on a designated folder
  2. Open the software
  3. Open the file (first the milling, then the cutting)

  4. Use the keyboard to set 0 for x, y and z
  5. Set zero for xy axis and put auto-level sensor in order to set the zero z axis and moving it little by little until it touches the material
  6. Run the auto level program, once it is ready, remove the sensor

  7. Turnon the spindle

  8. Start the milling process
  9. To run the code step by step you can press "T" and to do it non stop press "S"

The result looks like this:


Following the recomendations I removed the bit of copper on the tip of the board, in front of the usb contacts. I set 3 offsets in the milling process, but it was needed a bit more. I removed it with a knife pretty easy. The coper left on the side wasn't necessary to be removed.


ASSEMBLING THE PCB

Make sure to have all the components. This is the BOM (Bill of Materials)

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

To assembly the parts to the PCB it is recommended to start from the center towards the ends and from the top to bottom (Reminding Neil's words). Another recommendation is to start with the most difficult parts, in this case it would be the ATtiny45 so you can have more accesss for the rest of parts and leave the IPS header last, because of its big size it can be an obstacle for the rest of components if you solder it too early.




The ATtiny45 has a dot on a corner, which was easy to find and orient in the board.

I was told to pay attention to the correct orientatio of the leds and the zeener diodes. The zener diodes are marked with a green line and to make sure I used a multimeter to check them.

Added the resistors, starting with the 1kΩ, then the 499Ω and finally the 49Ω. I confused the resistors and once soldered I had to detach them (a difficult job) and reposition them correctly.

Then added the leds, capacitor, made a bridge and finally the pin header.



FINAL THOUGHTS

This is the final result of my board after some corrections from my tutor. Quality is lacking in the welds, it was not an easy job, especially when I had never tried it before. However I find it interesting and motivating to keep trying. I understand that I still have a lot to learn in this field but I'm pretty happy with the result.To improve the welds, the recommendation is to put the tip of the soldering in touch of the board and the component before adding the soldering tin.
I have a nice annecdote, when we prepared the resistor at the lab we mixed the 49.9 and the 499. I couldn't really see the difference between both of them, so i just followed the example and assembled my board. Turns out my board was the only one with no mistakes.


Program the ATtiny45 with an ISP Programmer

CHECK THE BOARD

Before doing anything it is important to check the board, these are the recommendations:

  • Check the board against the schematic and PCB layout image to make sure the components are correctly installed with locations and orientations.
  • Inspect the board visually. Components flat on the board, not tilted with pins in the air.
  • Solder connections should be smooth and on both the pin and the pad.
  • Use a multimeter to check for shorts between Vcc and GND, between tracks, bteween pins, none of them should make any sound.


PROGRAMMING THE FABTINTY ISP

Alex is a former student very skilled in programming. He helped us in this process. He has his own programmer which helped us to program ours and gave me the files (you nedd a former programmer to programm your programmer)

Following the instructions from this site Building the FabTinyISP.
In the programming section you can find this link to install the software needed Using the GNU AVR toolchain on Windows. The recommendation here is to install:

  1. GIT for windowsWhich I already had installed
  2. Toolchains for AVR: is a collection of tools/libraries used to create applications for AVR microcontrollers
  3. GNU make: make is a tool which controls the generation of executables and other non-source files of a program from the program's source file
  4. avrdude: is a utility to download/upload/manipulate the ROM and EEPROM contents of AVR microcontrollers using the in-system programming technique (ISP)
  5. *Note: had some trouble installing the AVR toolchain, so this site was usefull INSTALL ATMEL AVR TOOLCHAIN

  1. Then I needed to update the path to tell windows where to locate all the above tools installed. Also followed the instructions provided in the first link of this section.
  2. Next step is to Install drivers for the programmer to do this the recommendarion is to download Zadig and install the driver needed

  • Sanity check, Open Git bash and type make -v and press enter
  • avr-gcc --version press enter
  • avrdude -c usbtiny -p t45 press enter
  • Notes: * make is working
    * avrdude is working
    * avr-gcc -- version is not working

    • To fix this is suggested to check the Atmel toolchain and the path variable. I checked the toolchain installed and it was right but the path had the text wrong, went back to this Site and realized that the downloaded file had the text "master" at the end, edit it, put it on top of the list of paths and run git again. Not it is working.

    In the same FabTiniISP page you can download the make file, then follow this steps:

    • First, update the makefile. Edit it with a tex editor, in this case we used notepad. At the top of the file there is a line that says
      PROGRAMMER ?= usbtiny, replace it exactly as shown on the device manager.
    • Plug the board to an USB port (2.0 recommended) with a USB extension cable

    • The red led is now on

    • Connect the programmer to the ISP header on the board
    • Run, make to execute the first part of the make file and compile the program to an .hex file which contains the instructions for the microprocessor.
    • make flash to erase the target chip and program its flash memory with the contents of the .hex file built before.
    • make fuses to set the fuses of the ATtiny 45
    • Confirm that the USB works
    • make rstdisbl to set up all the fuses, disables the reset pin and creates another pinout, disbles the avrdude ability to reprogram the Attiny45
    • The next video will show all the process running correctly
    • It was nice to see that Thank you final message.

      😌


    Programming

    The following video shows a simple programmign I tryed using my outputs board from week 12 . It is an blink exmaple from Arduino IDE.
    The connections I made are based on the following diagram taken from electronica guru. and connected them to my board.

    In Arudino IDE, the steps are pretty simple to follow, I found the information in this site Burning sketches to the Arduino board with an external programmer

    The following video shows the result:


    FINAL THOUGHTS

    This has been a week of mixed feelings, on one hand I am excited about the first part of the exercise, engraving the plate, soldering the components, I enjoy this process. On the other hand, the programming part is still very complex for me to understand (even from the simplest things like understanding what a "hexa" is). Fortunately, the Building the FabTinyISP page is very detailed and easy to follow and my classmates have been really helpufull throughout this process.
    There are many concepts that I find difficult to understand, which takes me a long time to investigate and process little by little, I hope that the next few weeks this improves.