Week 10: Output Devices
Tasks for the week:
Task:01
Design a board to run an output device
This week the task is to design a board that can help run an output device.
So this week I decided to use a servo-motor as my output device.
Introduction to Servo Motors:
This week I got to understand the mechanism behind various kinds of motors and how they function.
It was important for me to understand the logic behind the mechanism of these motors before I use it as my output device for this week.
So as an introduction,
A servomotor is a rotary actuator or linear actuator that allows for precise control of angular or linear position, velocity and acceleration.[1] It consists of a suitable motor coupled to a sensor for position feedback. It also requires a relatively sophisticated controller, often a dedicated module designed specifically for use with servomotors.
Servomotors are not a specific class of motor although the term servomotor is often used to refer to a motor suitable for use in a closed-loop control system.
Servomotors are used in applications such as robotics, CNC machinery or automated manufacturing.
The datasheet for Attiny 44 helped me understand the pinout and the power supply that I can modulate as per my requirement.
Step:01
Designing the Board
Since I am absolutely new to electronics, I decided to follow the board and components from the on the Fab Academy website to design the board.
As my first step, I listed down all the components i needed while referring to the below shown board diagram.
As seen on the image on the right, I started sketching out the schematic diagram that would be required to make the board.
For this I read the board given on the left and started understanding the connections between the components.
I referred the board on the left and other components from this
link
Board that I referred to
Schematic sketch for the board
Designing the board in EAGLE
As my first step to design the board, I selected the required components for the library.
I kept the board image from the above link for my reference, so that I don't miss out on any components.
The fab.lbr can be acessed here.
Next step was to add connections between the components.
As mentioned, I had already sketched out the schematic diagram while understanding the circuit. So it was easy to do the same in EAGLE.
The image shows the schematic diagram in process.
Besides is the image of the completed schematic diagram for the board.
Board Diagram:
Now the next step was to prepare traces for the board. So i switched to the board diagram view for this.
I clicked on the 4th icon from left below the title bar to switch from the schematic to the board view.
Also, I added the fab.dru for optimsed track width and then set the following in net classes (Edit> net classes) before I used auto-routing.
Mil width:0.04mm, Drill:0mm, Clearance:0.4mm
This is what my board looked like after I did auto-routing for the board.
Steps to auto-route:
Tools> Autorouter
Error:
After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header as seen in the highlighted area.
So I checked my schematic diagram and found that I had not labelled the pins PA5, PA6 & PA7.
So, I rectified my error and made the traces again.
The image shows the revised board diagram.
The image shows the revised board diagram.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
2 - 8
<
>
Milling the board
The image shows the milling of the first board board diagram.
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
The image shows the milling of the first board board diagram.
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
The image shows the milling of the first board board diagram.
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
The image shows the milling of the first board board diagram.
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
The image shows the milling of the first board board diagram.
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
The image shows the milling of the first board board diagram.
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
The image shows the first board board after soldering.
It didnt work as it had an error.
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
ERROR:
Here the error was that After checking the connections of the board I realised that my MISO, MOSI & SCK pins from ATTiny44 were not connected to my ISP header
The image shows the milling revised board diagram.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
The image shows the revised board diagram.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
The image shows the revised board diagram.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
The image shows the revised board diagram.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
The image shows the revised board diagram.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
The image shows the revised board diagram.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
11 - 14
<
>
Final Files for the board can be accessed here and the schematic can be accessed here.
Programming the board
The image shows the revised board after soldering.
It didnt work as it had the following error.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
To rectify the error I made the incomplete connections complete by adding hookup wires to test if the circuit was correct so that I can proceed with programming.
The image shows the revised board along with the previous error board.
ERROR 2:
Again there was an error. Few connections were incomplete so I arranged the components properly and re-routed the board.
Unfortunately, these errors were found after I milled and soldered my boards.
After making the connections complete, I checked if the circuit was correct by doing the AVR test. And it was successful!!
Next step was to program it using Arduino board. I started with MEGA then shifted to Arduino UNO for ease of programming the pins.
I first programmed the Arduino UNO to work as AVRISP and then connected the jumper wires to connect it to my circuit board.
GND- ORANGE
MOSI - RED
V - WHITE
RST - YELLOW
SCK - GREEN
MISO - BLACK
Now this 6 pins are connected to the Arduino board.
PIN_MOSI to 11
PIN_MISO to 12
PIN_SCK to 13
PIN_RST to 10
1 - 6
<
>
The error occurred twice, because I didnt check if the auto routing was '100% optimised'. This is very important to have connections amongst all the components.
Coding
The first step is to prepare the Arduino work as ISP. The process is same as I did for week 8.Next, I connected my board to Arduino using MISO, MOSI, SCK ,RST, GND and VCC.
Further, I uploaded the code by Neil to check the working. It was successful. The video below shows the working of the code on my circuit.
Since, this circuit had a few unconnected components, I rerouted the board diagram and checked it with the design rules and it showed no errors.
The png images for the revised board can be seen on the left. I milled the board again and stuffed it with all the components. The image of the final board can be seen below:
I followed the same process for programming this board and it worked perfectly. The video showing the final working of the board can be seen below:
Revised EAGLE files can be accessed here.
FOR FINAL PROJECT:
I required a circuit board that would help me run a Bipolar stepper motor for my 'Clay extruder'. I wanted to redesign the board designed by Neil, but unfortunately the ICA4953 motor driver required to run the motor wasn't available in my area. Hence, I was trying to make a circuit using A4988 motor driver.
I came across Jari Pakarinen's work for FabAcademy 2017 and found out that he had prepared a board using the A4988 motor driver to run a bipolar stepper motor. Hence, I decided to redesign the board and try it myself to see if the board was hepful.
I didn't make any changes in the schematic, but redesigned the layout of the board. Later, I autorouted it to get to make connections and checked it by the design rules. It showed no errors. Hence, I moved further to milling and stuffing the board.
Below,are the png images for my redesigned board that I used for milling and stuffing.
EAGLE files can be accessed here.
Below, are a few images that show the parameters I used for milling the board and the process of milling:
<
>
Programming the board:
By following the same process that I followed to program the circuit for servo, I uploaded codes written by Jari, onto my board. I connected the MISO, MOSI , SCK, RST, GND and VCC pins of my board to arduino to program it first and then only connected the GNDand VCC pins to arduino for power and connected the 6 pin headed pins on my board to the stepper motor. Also, for the 6pin header for motor, I connected the gnd and vcc pins to external 9V battery. The connections can be seen in the images below:
Codes by Jari can be accessed here.
I chose not to modify the codes because I wanted to undersatand what Jari had tried to design, later I wrote my codes for the Final project.
Below is the video showing the working of my board with a stepper motor:
Step:01
Milling the FabISP
To start milling the FabISP , I first understood the method of working using Ubuntu (basics).So I documented each step of opening a file and creating .rml file for milling.