Difference between revisions of "RoboCup: Reflow Soldering Oven"
(convert to Wiki tags) |
Cwehmeyer3 (talk | contribs) |
||
(17 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | For the Fall 2014 | + | For the Fall 2014 semester, an introductory project was laid out for the incoming members to become familiar with the basics of embedded systems. |
+ | To accomplish this, the incoming members were asked to design and develop a temperature controlling unit for a reflow oven. | ||
+ | This page outlines the technical details of the project's results and includes information for helping others learn the high-level basics of embedded systems. | ||
== Project Specifications == | == Project Specifications == | ||
− | + | === Required === | |
− | *The | + | *The Arduino controller must integrate into a [http://www.amazon.com/Proctor-Silex-31111-Toaster-Broiler/dp/B004O0ANH2/ref=sr_1_17?ie=UTF8&qid=1412085077&sr=8-17&keywords=toaster+oven Proctor Silex 31111 Toaster Oven]. |
*A temperature sensor must be used in order to control the oven's temperature for [http://www.digikey.com/product-detail/en/SMD291SNL10/SMD291SNL10-ND/2057272 SMD291SNL10] solder paste. | *A temperature sensor must be used in order to control the oven's temperature for [http://www.digikey.com/product-detail/en/SMD291SNL10/SMD291SNL10-ND/2057272 SMD291SNL10] solder paste. | ||
− | *The temperature of the board (in the oven) must never exceed 260 | + | *The temperature of the board (in the oven) must never exceed 260 °F for 40 seconds. |
*A ''finalization'' stage must be incorporated that will evenly cool down the boards. | *A ''finalization'' stage must be incorporated that will evenly cool down the boards. | ||
*An indicator must inform the user (visual and/or auditory) when the board is ready to be removed. | *An indicator must inform the user (visual and/or auditory) when the board is ready to be removed. | ||
Line 15: | Line 17: | ||
*All electrical components in the electrical room are open for use and do not add to the project's cost ([http://inventory.robojackets.org/ http://inventory.robojackets.org]) | *All electrical components in the electrical room are open for use and do not add to the project's cost ([http://inventory.robojackets.org/ http://inventory.robojackets.org]) | ||
− | + | === Extended Features (Optional) === | |
*Use a [https://www.sparkfun.com/products/255 monochrome] or [https://www.sparkfun.com/products/11377 color] LCD for displaying the oven's inside air temperature and/or other useful information. | *Use a [https://www.sparkfun.com/products/255 monochrome] or [https://www.sparkfun.com/products/11377 color] LCD for displaying the oven's inside air temperature and/or other useful information. | ||
*Create a method that will allow a user to create a ''custom temperature profile''. | *Create a method that will allow a user to create a ''custom temperature profile''. | ||
Line 21: | Line 23: | ||
== Introductory Concepts == | == Introductory Concepts == | ||
− | This section outlines a few of the most common terms one may encounter when learning about embedded systems. An Arduino was used for the reflow oven's central controlling unit, so it is used below to help one relate to the reflow oven. | + | This section outlines a few of the most common terms one may encounter when learning about embedded systems. |
+ | An Arduino was used for the reflow oven's central controlling unit, so it is used below to help one relate to the reflow oven. | ||
− | Arduino | + | === Arduino === |
− | The | + | The Arduino brought electronics to the hacking population. It has been credited as the device that started the DIY project boom. The device allows one to easily interface with some of Atmel's AVR microcontrollers. The rest of the board consists of voltage regulation (5V and 3.3V), an FTDI chip for serial communication over USB, connection headers (makes it easy to use with a breadboard), and a clocking crystal. It actually is not too much of a challenge to integrate all of an Arduino's parts to the reflow oven's circuit board. |
Pins: | Pins: | ||
− | There are many types of | + | There are many types of Arduinos, and each one has advantages and disadvantages from the others. The standard models of the Arduino UNO and Arduino Nano will be discussed for this project. It is very easy to search Google for a diagram showing what the connection pins are attached to on the board. Additionally, the ATmega IC chips have datasheets if you are interested in the IC's pin diagram. Below are the basic pinouts for each Arduino. Notice that some pins are able to do multiple things. |
− | + | ==== Arduino UNO ==== | |
− | + | *6 analog input pins [pins A0 - A5] | |
− | *6 analog | ||
*14 digital I/O pins [pins 0 - 13] | *14 digital I/O pins [pins 0 - 13] | ||
*Rx and Tx [pins 0 and 1 respectively] | *Rx and Tx [pins 0 and 1 respectively] | ||
− | *6 | + | *6 PWM pins [pins 3, 5, 6, 9, 10, 11] |
*SPI interface [pins 11, 12, 13] | *SPI interface [pins 11, 12, 13] | ||
*I<sup>2</sup>C interface [pins A4, A5] | *I<sup>2</sup>C interface [pins A4, A5] | ||
*3.3V and 5V power | *3.3V and 5V power | ||
− | + | ==== Arduino Nano ==== | |
− | + | *8 analog input pins [pins A0 - A7] | |
− | *8 analog | ||
*14 digital I/O pins | *14 digital I/O pins | ||
*Rx and Tx | *Rx and Tx | ||
− | *6 | + | *6 PWM pins [pins D3, D5, D6, D9, D10, D11] |
*SPI interface [pins D10, D11, D12, D13] | *SPI interface [pins D10, D11, D12, D13] | ||
*I<sup>2</sup>C interface [pins D4, D5] | *I<sup>2</sup>C interface [pins D4, D5] | ||
*3.3V and 5V power | *3.3V and 5V power | ||
− | The nice thing about working with microcontrollers is that some pin functionality can be synthesized by other pins using code. For example, the | + | The nice thing about working with microcontrollers is that some pin functionality can be synthesized by other pins using code. For example, the [http://arduino.cc/en/Reference/SoftwareSerial SoftwareSerial library] can synthesize Tx and Rx pins on pins other than 0 and 1. |
− | + | === Communication Protocols === | |
− | + | ==== SPI ==== | |
− | SPI is the fastest of these three protocols. It requires 4 wires which makes it more cumbersome to implement in large circuits. However, due to the size of this project, SPI shouldn't be an issue. SPI allows for direct, two-way communication between a master device (such as an | + | SPI is the fastest of these three protocols. It requires 4 wires which makes it more cumbersome to implement in large circuits. However, due to the size of this project, SPI shouldn't be an issue. SPI allows for direct, two-way communication between a master device (such as an Arduino) and a slave device (such as a display or sensor). |
Here are the names of a typical SPI setup. | Here are the names of a typical SPI setup. | ||
− | + | *SCLK - Serial Clock (output from master). | |
− | + | *MOSI - Master Output, Slave Input (output from master). | |
− | + | *MISO - Master Input, Slave Output (output from slave). | |
− | + | *SS - Slave Select (active low, output from master). | |
− | A nice visual representation of this setup can be found | + | A nice visual representation of this setup can be found [http://goo.gl/Yv06RM here]: |
− | + | ==== I<sup>2</sup>C ==== | |
− | I<sup>2</sup>C (Pronounced I-Squared-C or I-Two-C) Is one of the slower communication methods; | + | I<sup>2</sup>C (Pronounced I-Squared-C or I-Two-C) Is one of the slower communication methods; however, it requires only two wires to implement, and new devices are easy to add while still using the same two wires. The difference between I<sup>2</sup>C and SPI is that I<sup>2</sup>C does not support simultaneous two way communication. |
The system works with two wires that all devices are connected to (the master and all the slave devices). | The system works with two wires that all devices are connected to (the master and all the slave devices). | ||
− | + | *SDA - Line of communication between master/slave and slave/master. | |
− | + | *SCL - Clocking signal (from the master) | |
− | One very important thing to note about I<sup>2</sup>C is that the ''SDA ''and ''SCL ''pins must be "Pulled up" to | + | One very important thing to note about I<sup>2</sup>C is that the ''SDA'' and ''SCL'' pins must be "Pulled up" to Vcc with pull-up resistors. The reasons for this will not be explained here, but a quick Google search is all that's needed for those who are interested. |
− | The master device sends out an address over the ''SDA ''signal wire corresponding to the target slave device. I<sup>2</sup>C slave devices are coded with an address that should be specified in its datasheet. All devices on the I<sup>2</sup>C wires will receive the address, and the device whose address was called responds to let the master device know that it is listening. Then communication can occur between the master and slave over the ''SDA ''signal wire in one direction at a time. | + | The master device sends out an address over the ''SDA '' signal wire corresponding to the target slave device. I<sup>2</sup>C slave devices are coded with an address that should be specified in its datasheet. All devices on the I<sup>2</sup>C wires will receive the address, and the device whose address was called responds to let the master device know that it is listening. Then communication can occur between the master and slave over the ''SDA '' signal wire in one direction at a time. |
This system is similar to a leader wishing to communicate with an individual within a group. The leader (the master device) calls out the name of his or her assistant, and then they communicate openly with each other. Everyone in the room can hear the conversation, but only the leader and the assistant are engaging in conversation because it is understood who is being addressed. | This system is similar to a leader wishing to communicate with an individual within a group. The leader (the master device) calls out the name of his or her assistant, and then they communicate openly with each other. Everyone in the room can hear the conversation, but only the leader and the assistant are engaging in conversation because it is understood who is being addressed. | ||
− | + | ==== RS-232 ==== | |
− | + | RS-232 serial communication is one of the easiest to understand from a wiring standpoint and it is widely used with Arduino projects because of the supporting libraries for the Arduino. The difference between this form of communication and the others is that it does not make use of a clocking pin. The baud rate, or the clocking speed for the serial connection, must be specified and each device handles clocking independently. On each device, Rx and Tx pins are present. Data is transmitted from Tx on one device to the Rx on another. This allows for two way communication between only two devices. To communicate with additional devices, new COM ports must be implemented (either through hardware or software; see the [http://arduino.cc/en/Reference/SoftwareSerial SoftwareSerial library]) or the appropriate COM ports must be reconnected. | |
− | + | *Tx - Transmit pin | |
− | + | *Rx - Receive pin | |
To wire up a serial connection, connect the Rx of one device to the Tx of the other and vice versa. | To wire up a serial connection, connect the Rx of one device to the Tx of the other and vice versa. | ||
Line 87: | Line 88: | ||
==== Miscellaneous Acronyms ==== | ==== Miscellaneous Acronyms ==== | ||
− | PCB - Printed Circuit Board | + | *PCB - Printed Circuit Board |
− | IC - Integrated | + | *IC - Integrated Circuit. Basically a fancy packaged circuit. Densely packed logic reduces space and power usage while providing faster switching speeds. |
− | PWM - Pulse | + | *PWM - Pulse Width Modulation. A fake analog output can be synthesized by switching on and off quickly. The average voltage is adjusted by changing the duration of the high and low. |
== Parts == | == Parts == | ||
− | [http://www.adafruit.com/products/1770 | + | [http://www.adafruit.com/products/1770 Touch Screen LCD] |
+ | |||
+ | [[Category: RoboCup]] [[Category: 2014-2015]] |
Latest revision as of 21:44, 13 June 2018
For the Fall 2014 semester, an introductory project was laid out for the incoming members to become familiar with the basics of embedded systems. To accomplish this, the incoming members were asked to design and develop a temperature controlling unit for a reflow oven. This page outlines the technical details of the project's results and includes information for helping others learn the high-level basics of embedded systems.
Contents
Project Specifications
Required
- The Arduino controller must integrate into a Proctor Silex 31111 Toaster Oven.
- A temperature sensor must be used in order to control the oven's temperature for SMD291SNL10 solder paste.
- The temperature of the board (in the oven) must never exceed 260 °F for 40 seconds.
- A finalization stage must be incorporated that will evenly cool down the boards.
- An indicator must inform the user (visual and/or auditory) when the board is ready to be removed.
- Temperature control must be done by having a signal for the oven being on or off. Do not worry about directly controlling the oven - just provide the signal.
- Once started, the oven must automatically turn off all heating elements after the process is over (no user action required).
- The total costs of all required electrical components must be less than $45 (including any dev. boards).
- The final bill of materials (BOM) must be acquired from one (1) supplier.
- All electrical components in the electrical room are open for use and do not add to the project's cost (http://inventory.robojackets.org)
Extended Features (Optional)
- Use a monochrome or color LCD for displaying the oven's inside air temperature and/or other useful information.
- Create a method that will allow a user to create a custom temperature profile.
- Create predefined temperature profiles for common types of solder pastes and allow the user to choose a thermal profile before beginning.
Introductory Concepts
This section outlines a few of the most common terms one may encounter when learning about embedded systems. An Arduino was used for the reflow oven's central controlling unit, so it is used below to help one relate to the reflow oven.
Arduino
The Arduino brought electronics to the hacking population. It has been credited as the device that started the DIY project boom. The device allows one to easily interface with some of Atmel's AVR microcontrollers. The rest of the board consists of voltage regulation (5V and 3.3V), an FTDI chip for serial communication over USB, connection headers (makes it easy to use with a breadboard), and a clocking crystal. It actually is not too much of a challenge to integrate all of an Arduino's parts to the reflow oven's circuit board.
Pins: There are many types of Arduinos, and each one has advantages and disadvantages from the others. The standard models of the Arduino UNO and Arduino Nano will be discussed for this project. It is very easy to search Google for a diagram showing what the connection pins are attached to on the board. Additionally, the ATmega IC chips have datasheets if you are interested in the IC's pin diagram. Below are the basic pinouts for each Arduino. Notice that some pins are able to do multiple things.
Arduino UNO
- 6 analog input pins [pins A0 - A5]
- 14 digital I/O pins [pins 0 - 13]
- Rx and Tx [pins 0 and 1 respectively]
- 6 PWM pins [pins 3, 5, 6, 9, 10, 11]
- SPI interface [pins 11, 12, 13]
- I2C interface [pins A4, A5]
- 3.3V and 5V power
Arduino Nano
- 8 analog input pins [pins A0 - A7]
- 14 digital I/O pins
- Rx and Tx
- 6 PWM pins [pins D3, D5, D6, D9, D10, D11]
- SPI interface [pins D10, D11, D12, D13]
- I2C interface [pins D4, D5]
- 3.3V and 5V power
The nice thing about working with microcontrollers is that some pin functionality can be synthesized by other pins using code. For example, the SoftwareSerial library can synthesize Tx and Rx pins on pins other than 0 and 1.
Communication Protocols
SPI
SPI is the fastest of these three protocols. It requires 4 wires which makes it more cumbersome to implement in large circuits. However, due to the size of this project, SPI shouldn't be an issue. SPI allows for direct, two-way communication between a master device (such as an Arduino) and a slave device (such as a display or sensor).
Here are the names of a typical SPI setup.
- SCLK - Serial Clock (output from master).
- MOSI - Master Output, Slave Input (output from master).
- MISO - Master Input, Slave Output (output from slave).
- SS - Slave Select (active low, output from master).
A nice visual representation of this setup can be found here:
I2C
I2C (Pronounced I-Squared-C or I-Two-C) Is one of the slower communication methods; however, it requires only two wires to implement, and new devices are easy to add while still using the same two wires. The difference between I2C and SPI is that I2C does not support simultaneous two way communication.
The system works with two wires that all devices are connected to (the master and all the slave devices).
- SDA - Line of communication between master/slave and slave/master.
- SCL - Clocking signal (from the master)
One very important thing to note about I2C is that the SDA and SCL pins must be "Pulled up" to Vcc with pull-up resistors. The reasons for this will not be explained here, but a quick Google search is all that's needed for those who are interested.
The master device sends out an address over the SDA signal wire corresponding to the target slave device. I2C slave devices are coded with an address that should be specified in its datasheet. All devices on the I2C wires will receive the address, and the device whose address was called responds to let the master device know that it is listening. Then communication can occur between the master and slave over the SDA signal wire in one direction at a time.
This system is similar to a leader wishing to communicate with an individual within a group. The leader (the master device) calls out the name of his or her assistant, and then they communicate openly with each other. Everyone in the room can hear the conversation, but only the leader and the assistant are engaging in conversation because it is understood who is being addressed.
RS-232
RS-232 serial communication is one of the easiest to understand from a wiring standpoint and it is widely used with Arduino projects because of the supporting libraries for the Arduino. The difference between this form of communication and the others is that it does not make use of a clocking pin. The baud rate, or the clocking speed for the serial connection, must be specified and each device handles clocking independently. On each device, Rx and Tx pins are present. Data is transmitted from Tx on one device to the Rx on another. This allows for two way communication between only two devices. To communicate with additional devices, new COM ports must be implemented (either through hardware or software; see the SoftwareSerial library) or the appropriate COM ports must be reconnected.
- Tx - Transmit pin
- Rx - Receive pin
To wire up a serial connection, connect the Rx of one device to the Tx of the other and vice versa.
Miscellaneous Acronyms
- PCB - Printed Circuit Board
- IC - Integrated Circuit. Basically a fancy packaged circuit. Densely packed logic reduces space and power usage while providing faster switching speeds.
- PWM - Pulse Width Modulation. A fake analog output can be synthesized by switching on and off quickly. The average voltage is adjusted by changing the duration of the high and low.