Week 4: Electronics production

This week we followed the electronics production class (see video here)

This page is about the assignment to build an ISP programmer board, soldering components, and flashing the firmware on it.

I based my assignment on Brian’s FabTinyISP board available here.

Milling the PCB

Check this page about this week group assignment about how to mill a board.

As exercise I decided to modify the “traces” and “outline” file to include some small personalizations.
First I added my name as decoration on the PCB.

fts_mini_traces.png

Secondly I added on the outline an extension with a hole that could help attaching it to a keyring.

fts_mini_outline.png

Then I followed the process ad described in the pcb milling test we did earlier on the same week.
The only difference is that I decided to change of +0.1mm the stock thickness parameter to resolve the issue we faced when cutting the outline in the test board.

stock thickness (mm)
1.6

Screenshot_indiv_traces
Screenshot_indiv_outline

Here are the .RML files generated for my board: Download traces source file (.RML) Download outline source file (.RML)

And the final result after cleaning the board:

IMG_indiv_milled_board

Soldering components

Next step is to solder the components on the board. I started collecting all the components needed on a list and highlighted the ones that have an orientation (eg. leds, diodes)

IMG_indiv_list_of_components

Then after a bit of practice I started soldering the components: the ATiny chip first, then the components closer to the board centre and as last the 3x2 connector header. With this order it has been simpler to have more space available while soldering.

Here is the result:

IMG_indiv_finished_board_attempt1

I started testing the board with a multimeter… and, oh no :sob: I realised that I inverted the LEDs orientations. So I had to unsolder them… it has been a quite gruesome experience :) and I had to ask help to a third hand in this step.

IMG_indiv_unsoldered_leds

IMG_indiv_board_final_with_jumper

Programming the board

For the programming process we connect our board to an existing AVR Programmer like in the picture below:
(note: this picture has been taken later after cutting the jumper)

IMG_indiv_board_attached_to_AVR_programmer

We plug both our board and the AVR programmer in the USB ports. At this point a green light on the AVR programmer gives us an indication that we are on the good path and no major mistakes on the circuit have been made.

Following the documentation we flash and test our board:

  1. Compile the firmware binary from sources with: make
    Screenshot_indiv_programming_make
  2. Flash the firmware to the ATiny45 with: make flash
    Screenshot_indiv_programming_make_flash
  3. Setup the fuses with: make fuses
    Screenshot_indiv_programming_make_fuses
  4. At this poin we can test the USB functionality of our board. When it is connected to a USB port should be recognised as ID 1781:0c9f Multiple Vendors USBtiny
    Screenshot_indiv_programming_make_lsusb
  5. We finally set the fuse that disables the “reset” pin with make rstdisbl
    Screenshot_indiv_programming_make_rstdsbl
  6. Last step is to remove the bridge on the solder jumper maually on the board.

IMG_indiv_board_final_attached_to_laptop

Happy electronic boards production! :wave: