I started by watching SparkFun's YouTube video on the oscilloscope
I learned:
That an oscilloscope measures voltage over time: getting amplitude, frequency, transient signals
The important buttons...
Calibrating the probe/Adjusting the compensation capacitor
On the probe, select X10
Connect the probe to the channel one plug
Connect the probe to the 1kHz 5V square wave generator
Turn on the oscilloscope
Make sure only channel one is on: click the CH2 button until it's off, and the other way around with the CH1 button
Select DC coupling with the F1 key
Press button F4 to select 10X on probe mode
Press the trig/menu button and select type "edge" and source CH1
Select slope as "Rise"
Adjust the vertical and horizontal knobs until you see the wave
If the wave is moving, adjust the trig knob until it stops
To calibrate the probe, adjust the screw on the base of the probe until the wave is square
Eagle introduction:
I started by watching the video tutorials below, then I had a look through the
Eagle tutorial for week 6. Following it, I downloaded and installed the Fab library for Eagle.
Under projects → right-click on Eagle → click on new project → name the project
Right-click on the project name → new → Schematic
Type "add" → search for each part
Place the part with a left click → repeat until all parts of the same kind are added → press ESC to add the next part → search for the next part or press ESC to go back to the schematic
Type "rotate" and left click on the part origin to turn the part to the desired position
Type "net" to connect parts to each other
Type "name" and left click on top of a part to name it
Type "label" and left click on a wire to connect one to the other without having to draw a net
Type "value" and left click on the part origin to set the part "value"
Type "move" to position the part as needed
Save the file
In the schematic above, you can see that most components are not connected with a line (the "net" command), except for the crystal (XTAL1). The rest of the components are connected virtually with the "label" command, as explained in letter "h" above.
Drawing the Board
To position the components on the PCB, use the same commands as on the schematic:
Left click on file → type "board" → accept the warning and left click yes to create the board and start designing the PCB from the previously created schematic
All components will be displayed to the left of the board → drag them one by one with the command "move" + left click and drag to position them inside the board
Type "rotate" to turn the components the same way as in the schematic
After everything is positioned → resize the board by dragging the sides of the original board with the command "move"
Type "polygon", select the top layer and draw a square around the board limits in order to create the top layer of the PCB
Type "ratsnest" → to start the autorouter, type "auto". This command is very convenient, as it gives an initial idea of how you can route the board, but it doesn't replace manual routing
Select start
Adjust traces if needed with the command "ripup" to remove placed paths
Place new paths with the commands "route" and "move" to position them better
Type the command "info" + left click in order to fine tune the position of the paths as well as their thickness
You can watch how I did it here. Pump up the volume for some Cash!
In order to add the LED and the button, I went back to the schematic
In the schematic, type "add" to add two resistors, one LED and the button
The first resistor limits the current that goes to the LED. It goes in series with it (on either side of it). In order to dimension the resistor, I first checked the LED datasheet. There I looked for the DC forward current, in this case 30 mA, and the forward voltage, in this case 2.1 V
With those two values plus my input voltage (5 V) in hand, I entered the values on the website LED center in order to calculate the correct resistor, in this case 100 Ohms. On the board I used the 500 Ohm resistor from the schematic (499 Ohms in the Fab inventory), which keeps the LED well below its 30 mA limit.
As for the switch, I used a 10K resistor as a pull-up resistor
Like before, I used the commands move, rotate, label, name and copy to put all components in place
Make the BOM (Bill of Materials)
Left click on the design link → left click on Schematic
Wait for the program to display the part → type a new search string in case the desired part does not appear → left click manual search → choose the desired part → left click select
Repeat the previous process until all parts are found
Identify commands to compile and burn the firmware
- With all files previously downloaded into one directory, in Linux I rename the file to makefile and run the script to create the firmware (I will repeat this step every time I want to modify the code):
Programming an ATtiny44 board with Arduino using a FabTinyISP or USBtinyISP that I made.
FabISP
Programming an ATtiny44 board with Arduino using a FabTinyISP or USBtinyISP that I made was fine. There is only the inconvenience of having to power the target board.
Start by opening the Arduino IDE, then in Tools choose the board, in my case ATtiny24/44/84. Next, in Processor, I chose ATtiny44.
Next, choose the clock. As I'm not using an external crystal, I chose "Internal 8MHz". (These steps come from the Output Devices board. This board has a 20 MHz resonator, so here the right choice is "External 20 MHz".)
Next, go to Programmer: "USBasp", or "USBtiny" for the FabISP.
In the video below I show the process of programming with the FabISP.
Here, instead of using the terminal and avrdude, I used the Arduino IDE, as it has a built-in serial monitor.
The results are as follows in the video
Conclusion
I really enjoyed learning this new tool. I had used Eagle before to view PCBs, but never actually designed one. I feel it opens my mind to a lot of new things to come!