6. Electronics design

What I’ve done this week

  • redesign the echo hello-world boards and add new parts on it.
  • cutting the board, soldering parts on it, put program on it, and testing it

Weekly Assignment Requirement

Group assignment

  • Use the test equipment in your lab to observe the operation of a microcontroller circuit board (in minimum, check operating voltage on the board with multimeter or voltmeter and use oscilloscope to check noise of operating voltage and interpret a data signal)
  • document your work (in a group or individually)

Individual assignments

  • Redraw one of the echo hello-world boards or something equivalent, add (at least) a button and LED (with current-limiting resistor) or equivalent input and output, check the design rules, make it, test it.

Description of Assignment Work

Board design by eagle

For the assignment of this week, I referred to the board from FabAcademy’s website. I just put a button and LEDs on it to meet the minimum requirement for it.

When I designed the PCB, I used software called Eagle which was released by Autodesk. It had plenty of library for the electronic parts because many contributors took part in developing them so we can use variety of parts on original PCB designing thanks to that. and also it was able to download for free.

designing schematic firstly
for making the board, I needed the parts below

Parts Description Quantity
microcontroller Attiny44 1
LED red 1
Resistor 499Ω 1
Resistor 10KΩ 2
Header 2x3 male SMD 1
Header 1x6 male SMD 1
Capacitor 10uF 1
Resonator 20MHz 1
LED green 1
Switch Tactile switch 1


select the parts from parts list


put the parts on the working plane


connect each parts by wire


!important! used ECR(Electrical Rule Check) for checking the electrical connectivity at the end

some warnings showed up, but it was no matter for designing the board this time

board layout
to layout lines, set design rules. (only setting clearance was fine this time.


Different Signals
Wire
Wire 0.45mm Pad
Pad 0.4mm 0.4mm Via
Via 0.4mm 0.4mm 0.4mm
Same Signals
Wire Pad Via
Smd 0.4mm 0.4mm 0.4mm

I wrote down setting values as a text here for just in case.

put the parts to make the layout of PCB

it was really difficult to connect all the lines without interfering others.
it would be okay to use kinds of cheating like via(making hole and connect line on the backside) or bridge(using 0Ω resister to over the trace)

but I could connect all without them somehow.

[TIPs]VCC and GND were designed as thick as possible because it would make smooth conductivity.

!important! Then tried DRC(Design Rule Check) for checking if the design rules were followed correctly

Airwire (the part not connected properly) existed.

So I fixed them. (Just connecting again)


Then, move designed traces to left bottom and fit the workspace size to it.


drew the outline(shape of the board) by polygon tool.
selected “48 Document” layer and picked the tool.

started to draw the shape of the outline.
if it is connected the end point of the line to the start point of it. the shape of the outline would show up filled in gray.


Then, exported trace data and outline data as image files.
Selected menu [ View > Layer settings… ]

Tick only #1Top and #17Pads this time. (#18Vias would be needed when I used via on my board)

Selected menu [ File> Export > Image ]


Set the optional file name and 800 for the Resolution and tick on Monochrome.


Did the same thing on outline data. Only different thing is tick #48Document on Layer settings… phase.


Board data were completed!

Extra Board design by Inkscape

to put text on the board, used Inkscape.
open the traces file and put text on it. Then, export it as a png file.


Board cutting by mods and SRM20

I used mods for making cutdata(.rml file). it was same as the process I did at week04 basically. and used them on SRM20.

first attempt
fail > resolution of image was wrong

It was apparently first trial(wrong one) and second one had different sizes each other.
cause : when I exported it from Inkscape, The size parameter was changed from the original I set by the Eagle.

cut again
checked the board size carefully then cut

cut them as almost same size

there were some uncut parts. (might still have resolution problem? )

my instructor advised me that I shouldn’t have trusted DRC in Eagle too much and always had to check the toolpath which was generated by mods.

Actually, failure parts were shown up on it when I checked it later.

so cut them by hand with ultrasonic cutter

done!

soldering

parts collecting


soldering


checking


Programing

tried the sample program (echo)
I got the test code from FabAcademy’s website.

first trial
fail > couldn’t execute even make file command
cause : file name was wrong. it should have saved the program files from FabAcademy website directory by right click.



now make command worked!

two new files generated in the folder


second trial
fail > could execute make file command but couldn’t make fuse
cause : found bad soldering

resolder one leg of attiny

and also I put one of the LED wrong place (actually I wanted to use it as a power indicator but didn’t work)
so I put a 0Ω resister instead of the LED there as a bridge.


third trial
fail > couldn’t make fuse > change programer from USBtinyISP to AVRISP2 (* had to be rewritten as program-avrisp2-fuses)


fourth trial
success > echo program worked by serial monitor on Arduino IDE
then I found the board was fine but programmer was no-good.


fifth trial
I also tried writing program from USBtinyISP to Arduino.

writing was succeeded



and program run properly!

So I found the problem was connection of USBtinyISP with my laptop. when it was recognized by laptop as the following image showing, testing went good though sometimes it wasn’t recognized at all and writing went wrong> I found good connector for my programmer. If I used this, the rate of recognition of USBtinyISP by my laptop remarkably went up.




Worked even from USBtinyISP lastly!

everything was fine. then I tried more testing program.

LED and button test

I borrowed test programs from Kae Nagano who graduated from FabAcademy 2019 at FabLab Kamakura.

blink program > success


button program > success


At the last, attached a pin on GND trace to hook a probe of the oscilloscope easily for debugging.




Group Assignment

In the group assignment, I tried to check the signal from TX and RX pins using the oscilloscope. TX means transmitters which sends signal from laptop to the board and RX means receiver which sends signal backwards when it gets signal from the laptop.

Please see the link below.

Kamakura Group assignment week06

Description of Important Weekly Learning Outcome

It took much larger amount of time for individual assignment than I planned because of debugging. At first, I got the problem in board designing as putting wrong parts and cutting the size of the board wrongly. then, I did bad soldering on the leg of attiny44. Lastly, I could not write a program because I made makefile wrong name. I met many problems in all procedure. Each problem needed different debugging way. So I thought I had to learn basics of all the process deeply to solve issues I would meet while doing electronics production. and I should prepare more time for debugging as well.

Eagle sch (.sch)
Eagle brd (.brd)
Traces(.png)
Outline(.png)
Traces cutting data (.rml)
Outline cutting data (.rml)