W04 - Electronics Production

1. Weekly Assignments ( -> what I did this week )

  • 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 assignment:

Make an in-circuit programmer by milling and stuffing the PCB, test it, then optionally try other PCB fabrication process.

Have you?

Questions from “Fab Academy 2020 Assignments and Assessment

Electronics Production

( -> my answers )

  • linked to the group assignment page ( -> yes, site )
  • Documented how you made (mill, stuff, solder) the board ( -> yes )
  • Documented that your board is functional ( -> yes )
  • Explained any problems and how you fixed them
  • Included a ‘hero shot’ of your board ( -> yes )

3. Description of Assignment work

making FabTiny ISP

Tutorial Building the FabTinyISP

1) milling the board

(1) downloading the pattern image file

10-fts-mini-traces 20-

(2) prepare the milling data by Mods

(3) milling

CNC parmeters for circuit pattern

tool diameter (in) ; 0.0156 (1/64)

cut depth (in) ; 0.004

max depth (in) ; 0.004

offset number ; 4

milling speed ; 4 mm/s

CNC parmeters for holes and outline

tool diameter (in) ; 0.0312 (1/32)

cut depth (in) ; 0.024

max depth (in) ; 0.072

offset number ; 1

milling speed ; 4 mm/s

data by Mods milling
30-Mods-fabTinyISP 40-PCB-milled

4) cleaning

remove the unnecessary part flux on the surface of PCB
50-PCB-after-finish 60-PCB-flux

2) stuffing

(1) parts collection

(2) soldering

(3) contact check

parts collection contact check
70-PCB-parts 80-PCB-tester

3) software setting

installing the firmware (hex file) into FabTinyISP ​ ( download -> build -> make flash )

download firmware

​ Run make to build hex file, named “fts_firmware.hex”.

downloading the firmware firmware build
90-firmware-download 100-firmware-build

edit “Makefile” for the appropriate programmer.

This time, I used “avrisp2 “. Therefore, I edited like below.

PROGRAMMER ?= avrisp2

edit the makefile ( avrisp2 )
110-PCB-LED-on 120-Makefile-avrisp2

Regarding the environment for software development, ” CrossPack “ was recommended, in the ” Tutorial Building the FabTinyISP ” . But it didn’t work properly on my MacBook Pro ( macOS Mojave version 10.14.6).

Then, by referring the site below, I decided to use ” homebrew-avr “.

Embedded programming, by Fab Academy2019 Anton Pchelkin

As described in the above site, I visited osx-cross / homebrew-avr , then, executed the commands as follows.

brew tap osx-cross/avr

brew install avr-gcc

brew install avrdude

Then, Run make flash , to erase the target chip, and program its flash memory with the contents of the “fts_firmware.hex”.

make flash
130-homebrew-avr-GitHub-installing-avr 140-make-flash-connect
removing the jumper MacBook recognizes USBtinySPI
150-cutting-jumper 160-USBtinySPI-from-mac

4) functional testing as ISP

” LED blink test “

To check the function as ISP, I used the PCB & software from “fab academy2018 Jun Kawahara”.

embedded programming, by Fab Academy2018 Jun Kawahara

electronics production, by Fab Academy2018 Jun Kawahara

Then, the program was successfully installed by using my FabTiny ISP.

LED blink test
170-jun-board 180-led-blink-testfiles
installing the LED blink test program
190-blink-test-programs2 200-

4. Some failed approached

When I installed avr-gcc, I tried Macports and CrossPack, but they didn’t work. ( So, I used homebrew-avr, then it was OK. )

5. Important Learning Outcome

Tool chains are not officially supported by Apple, so there are some systems which does not work properly like the above. It is important to look for the latest available tools.

( no original files or codes this week )

7. Appendix

Electronics design, by Fab Academy2019 Kae Nagano

embedded programming, by Fab Academy2018 Jun Kawahara

electronics production, by Fab Academy2018 Jun Kawahara

Homebrew AVR Toolchain


Embedded programming, by Fab Academy2019 Anton Pchelkin