Electronics production

1. Weekly Brief Summary

This week I made FabTinyISP using Rolland SRM-20.
As for the group task, I was in charge of the chamfering work before processing the substrate.
After testing the FabTiny, we tried to make a PCB in other ways.

2. Weekly Assignment Requirement

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

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

Learning outcomes

  • Described the process of milling, stuffing, de-bugging and programming
  • Demonstrate correct workflows and identify areas for improvement if required

Have you

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

Kamakura Group Assignment Week04

4. Assignment Work Planning

  • Group Assignment
    (a)Surfacing・・・Yuki Oka & Toshiki Tsuchiyama
    (b)Test Cut・・・Hideo Oguri

  • Individual Assignments(1)
    (a)substrate cutting

  • Individual Assignments(2)
    (a)Production of substrates with laser cutters
    (c)waste liquid treatment

5. Description of Assignment Work

FabbTiny’s Production

(1) Settinng of Materials

A waste plate (bake plate) is laid on the chemical wood projected earlier.
A masking tape and a double-sided tape are used to fix the tape.

A copper plate is placed thereon and fixed with a double-sided tape.

(2) Attachment of Endmills

First, since the circuit diagram is cut, the circuit diagram is changed to a 1/64 straight end mill.

An origin of the Z-axis is also set

(3) Creating Data in Mods

I have downloaded the [FabtinyISP] tracing and outline images from the class page. I’ve pasted the download links below.

I did a Google search for [mit mods] and set up [Mods] (https://mods.cba.mit.edu). To create the G-code for SRM-20 in Mods, follow the process below.

First of all, right click on the screen and you will see an interface like this. Select [programs]–>[open server program]–>[SRM-20 PCB png].

After that, choose [modules]–>[open server modules]–>[file save] and connect [Roland SRM-20 milling machine] and [save file].

The cutting image was read from [read png]–>[select png file].

I made the parameters with the following settings.

traces files・・・1/64 - In module Roland SRM-20 milling machine Origin
・x0(mm) - 0
・y0(mm) - 0
・z0(mm) - 0…These x0,y0,z0 are for setting up an offset from the origin save in
・zjopg - 12…This is the z distance that the mill will go up between the air travellings
・Speed - 4 or 3 mm/s for new end mills

holes / outcut file・・・1/32 - Send the files to the machine - In Mill Raster 2D module click in Calculate
・The file will be saved automatically into your download folder.
・x0(mm) - 0
・y0(mm) - 0
・z0(mm) - 0
・zjopg - 12
・Speed - 0.5

The G code was generated from [mill raster 2D]–>[calculate].


(4) Circuit Diagram Cutting

Cutting data of the circuit diagram is read by a VPanel.
Click [Processing] (red circle) in the VPanel to open the Advanced Settings.
There is a possibility that there is a data file that someone processed last time, so click [Delete All] (red frame part).。
Data created earlier are read from [Add] (blue frame part) and click [Output] (green frame part).

Cutting Condition

(5) cutting of Object

As before, the output data are read in and processed by the VPanel.

Cutting Condition

Here is the board I took out.

(6) Cleaning

Clean the cut-out substrate with steel wool and neutral detergent.

(7) Flux

Flux is applied to improve solder loading.

(8) Preparing Parts

Prepare the parts needed to make FabTiny.
Putting together the names of the parts, the place to fix them, and the actual things in the notebook is very efficient.

(9) Soldering

First, a preliminary solder is placed on a substrate.

It is important to check the cathode of the part with polarity.

(10) Confirmation of Energization

Energization confirmation is performed by using a multimeter.

(11) Verifying USB Connectivity

Plug FabTiny into the USB connector and check for LED-lighting.
But it doesn’t light.

(12) Solution

(A)Improved USB Connector and FabTiny Contact Location

An end material of the plastic is cut out with scissors and adhered to the rear surface of the FabTiny to provide a thickness.
After insertion, FabTiny no longer wobbles.


(B)Rebuild LED Solder
(C)Rebuild Resistor Solder


(D)Refill the Solder on the USB Contacts

→It’s lighting!

Programming FabTiny

Here(ENG)/(JPN)←Worked in line with this tutorial

My MacOS is Catalina.

(1) Install CrossPack→failure

Here←Install CrossPack
Installing isCrossPack-AVR-20131216.dmg(41730KB)

This is the beginning of the tragedy begins.
My MacOS is Catalina.
Catalystina does not allow you to write to FabTiny when you install a Cross Pack.
For Catalystina, you will need to download the latest avrdude/avr-gcc separately.
Details will be given later.

(2) Obtaining and Building Firmware

Here←Download the firmware source from here.

Move the extracted file from [ command + shift + H ] to the hierarchy of the repository.

Booted to the terminal and executed the [make] command in the firmware folder hierarchy.
However, [Error] appears.

A file called [fts_firmware.hex] is originally created in the folder after executing the [make] command.

Download “Silhouette Studio” for Mac from here

(3) Solution

(A)Update the Version of Catalina→failure

[Error] appears with[Bad CPU type in executable].

(B)Make Arduino the Latest Version→failure

[Error] appears with[Bad CPU type in executable].

(C)Install the latest version of the AVR toolchain via HomeBrew→Succese

Here←Referred to the Homebrew AVR Toolchain installation tutorial here.

Then execute the [make] command, and the [fts_firmware.hex]The file was created!

Program to ATtiny45

(1) Edit [Makefile]

At this time, we will use ATAVRISP2 to write to ATty45.
Since [Makefile] expects to use [usbtiny] by default, this part should be rewritten to [avrisp2].

(2) Try [make flash]

Plug the FabTiny into the USB 2.0 connector and connect the pin header to ATA VRRP 2.
Should be careful not to make a mistake on the pins you are connecting to.

Performed make flash on the terminal because the connection was successful.

[Error] appears with[Bad CPU type in executable].
This is the same error that occurred when you executed the [make] command.

(3) Solution

(A)Reacquire and Build Firmware→failure

Delete the [fts_firmware_bdm_v1] folder, download the firmware again, and run the [make] command.
Then launch [VIM(vi)] on the terminal and edit [Make file].
(The contents of editing are the same as before)
Execute [make flash] after [:wq(=Save & Exit)].

(B)Download Xcode→Error

When the same MacOS compared the Catalina students to their own PCs, there was a difference between whether or not the [Xcode][Command Line Tool] was installed.
Downloaded the Xcode from the App Store.

※Xcode took a long time to download.
After the download, I tried to [make flash] and got [Error] again.

(C)which avedude→failure

The first cross pack downloaded may be bad.
I checked which layer of [avrdude] is in the PC with [makeflash] success and the PC with [avrdude] not.
- [which avrdude] Results on a Successful PC
[ /user / local / bin / avrdude] - [which avrdude] Results on an Insuccessful PC (mine)

(D)Uninstalling CrossPacks

Because the process (C) did not resolve the issue, we decided to uninstall CrossPack.
Execute [sudo /usr/local/CrossPack-AVR/uninstall] and successfully uninstalled.

After that, I restarted and checked the location in [which avr-gcc][which avrdude].


(E)Install the Latest Version of CrossPack via homebrew.

Here←Latest version of CrossPack is installed via Homebrew along the tutorial.

Try [makeflash]


(4) Turn Off the Reset Fuse

After [makeflash] is executed, [make rstdisbl] is executed to change the [reset pin] of the ATtiny45 to a [GPIO pin].
However, it is not executed and becomes [Error].
※At this time, before [make rstdisbl] is executed, the terminal is forcibly closed.

(5) Solution

(A)Try [make fuse]→Error

(B)Redo one’s Behavior After Executing [make] Command

Delete the [fts_firmware.hex] file created by [make] and the [main.O] file created by [makeflash] command.
After the commands [make] and [makeflash] are executed again, the command [make rstdisble] is executed.


(6) Unbridge jumpers

As the writing of the program is completed, the solder of the jumper is removed. At the same time, the part which is likely to come into contact with by mistake is removed with a cutter.

(7) Testing USB Functionality

For Mac OS, open [System Report] from [About This Mac].
[Hardware]→[USB]→It’s OK if there’s に[USBtinyISP] in [USB device Tree].

(8) Create a Pin Connector

(9) Testing FabTiny Operation

Finally, test whether you can write programs to other boards using FabTiny.
The program that was already written to the board had a LED flashing speed of 1/1000 seconds.
Change it to 1/100 seconds to see if the light changes.


(10) Evaluate

MacOS Catalina provides strong security for software downloaded or installed from outside the AppStore.
As a result, the AVR tool chain could not function properly via the Croaa Pack like this time.
I found out that it is better to install the software via homebrew in the future.

Make FabTiny with Laser Cutter and Etching

I made Fabtiny with trotec Speedy 100 and environmentally-friendly Etching.

(1) TestCut

First, I applied MDF and looked for parameters that could only be peeled off with laser cutting.
As a result, [Power : 40 / Speed : 90 / 1000ppi ] is the most appropriate parameter.

(2) Painting

I cut the outside diameter of the substrate with SRM-20, and I applied two different paints on it.
The Left side is an oil spray used for manufacturing and the color is black matte.
The right side is an antireflection spray for laser processing.

(3) Laser Processing

When the paint is sufficiently dry, carve with a laser cutter.
cutting [Power=40 / Speed=90] At first, I worked on an antireflection spray for laser processing.
This reflected quite a bit of light.
The paint didn’t peel off.

Next, I processed the oil spray for the machine.
The paint came off beautifully here.

(4) Cleaning

After peeling off the coating, use a cleanser to clean the substrate.
Cleaners are used to clean oil stains in the kitchen.

Don’t rub too hard when you wash.
Wash gently with your fingers.

This is the result of washing.
Substrate washed with oily color spray on the left and antireflection agent on the right.
Left side is very beautifully peeled off, but right side is sufficiently peeled off and could not be cleaned.

Oily color spray comparison between those which washed and those which didn’t.
The black stain is removed from the washed substrate.

(5) Make Etching Liquid

The ingredients for the etching liquid can be purchased at nearby supermarkets and drugstores.
I prepared was oxydol, salt and citric acid.
Mix them in proportion to [Oxydol : 25g / Salt : (1g) + Citric Acid : (4g) = 5g] to create an etching liquid.

The chemicals used are household chemicals namely 1. Citric acid for cleaning purposes. 2. Oxydol that contains 3% v/v of H2O2 (oxidizing agent) and 3. Table salt. These chemicals are sold as household chemicals and safe to be dispose due to low concentrations.

Basically the citric acid will bind to Cu metal to form somekind of Cu-citric complex and then the H2O2 will oxidize the Cu-citric complex into Cu2+ ions hence the Cu metal dissolved into the solution.
To maintain the pH of the solution, table salt is used, because etching process is dependant on pH.
The only issue the Cu2+ concentration, some country have regulation on the concentration of Cu2+ in the sewage water.
For hobbyist, the etching usually is in small scale, hence very unlikely to exceed the concentration mentioned in regulation.

[ Oxydol : 25g ]

[ Salt : (1g) ]

[ Salt : (1g) + Citric Acid : (4g) = 5g ]

Shake and rub together and mix well.

When the salt and citric acid are completely dissolved, the etching solution is complete.

(6) Etching

First, I put the substrate coated with antireflection agent in the etchant.
Then all the parts I painted were peeled off.
Apparently, the paint was water-soluble.

Next, I put the oily color spray-coated substrate in the etchant.
I had no experience with etching, so I prepared 30 minute and 40 minute bags and tested them.

It is well etched.

Half an hour later …
Remove the substrate.

Remove the coating using Nail Color Remover which contains acetone.

I etched it for half an hour, but it didn’t have enough time, and it turned on the parts that weren’t a circuit.

I decided to leave the other bag for a day because I couldn’t get it done with 30 minutes of etching.

When I checked the next day’s bag, I thought that the etchant was discolored to blue and it was etched.

However, the result was over-etching. To determine the etching time, I found I had to keep a close watch.

Next, I decided not to set the etching time from the beginning, but to look at it carefully.
Then, when it was 1h55m, the copper, except for the painted part, disappeared beautifully.

When I removed the paint using Nail Color Remover, the circuit came out beautifully.
I succeeded!

(7) Waste Liquid Treatment

Finally, waste liquid treatment is performed.
I prepared water, aluminum foil and tweezers.
Water is needed to cool the heat generated during waste liquid treatment.
Aluminum foil is required to deposit copper.
Tweezers are necessary to prevent waste liquid from adhering to your hands.

Place the etchant in the dish.

Place the aluminum foil in the etchant.
Be careful not to curl up the aluminum foil.
Be careful as aluminum foil may radiate heat and boil the liquid.

The aluminum foil is gradually collapsing.

3 minutes later

When the aluminum foil melts, add a new one to precipitate copper.
Continue this process until the aluminum foil you put in melts away.

The precipitation work is finished because the aluminum foil has no longer melted.

I separated the liquid from the deposited copper.
Solutions that deposit copper are acidic, so they are diluted with sodium bicarbonate before they are thrown away.

When sodium bicarbonate is put into the liquid, the chemical reaction produces bubbles, so sodium bicarbonate puts in small amounts.

Diluted liquids should be mixed with a large amount of water before they are thrown away.

6. Description of Important Weekly Learning Outcome

I think the advantage of manufacturing a substrate with a laser cutter is that I can make a circuit that is finer than a cutter.
However, the disadvantage is that the etching is uneven.
This may be solved once you get used to it, but it’s a very difficult way for beginners.
Also, the waste liquid treatment after etching is quite troublesome, but I felt that using a solution and a treatment method with less environmental load would expand the range of production.

8. Appendix