Difference between revisions of "RoboCup: Reflow Soldering Oven"

From RoboJackets Wiki
Jump to navigation Jump to search
 
(25 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Project Summary ==
+
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.
  
=== Introductory Concepts ===
+
== Project Specifications ==
  
Arduino Capabilities<br/>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 Atmel's&nbsp;[http://www.atmel.com/devices/atmega328.aspx ATmega328] microcontroller (some arduinos are based upon other chips that provide different capabilities). The rest of the board consists of power regulation (5V and 3.3V), an FTDI for serial communication over USB, connection headers (make 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.
+
=== Required ===
 +
*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.
 +
*The temperature of the board (in the oven) must never exceed 260 &deg;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 ([http://en.wikipedia.org/wiki/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/ http://inventory.robojackets.org])
  
Pins:<br/>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 pinnouts for each arduino. Notice that some pins are able to do multiple things.
+
=== 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.
 +
*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.
  
UNO&nbsp;: [http://goo.gl/NW93MP http://goo.gl/NW93MP]<br/>: 6 analog I/O pins - [pins A0 - A5]<br/>: 14 digital I/O pins - [pins 0 - 13]<br/>: Rx and Tx - [pins 0 and 1 respectively]<br/>: 6 Pulse Wave Modulation (PWM - allows for simulated analog output by turning the signal on and off really fast) pin - [pins 3, 5, 6, 9, 10, 11]<br/>: SPI interface - [pins 11, 12, 13]<br/>: I2C interface - [pins A4, A5]<br/>: 3.3 Volt and 5 Volt power
+
== 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.
  
Nano&nbsp;: [http://goo.gl/qtWSuh http://goo.gl/qtWSuh]<br/>: 8 analog I/O pins - [pins A0 - A7]<br/>: 14 digital I/O pins<br/>: Rx and Tx<br/>: 6 Pulse Wave Modulation (PWM - allows for simulated analog output by turning the signal on and off really fast) pin - [pins D3, D5, D6, D9, D10, D11]<br/>: SPI interface - [pins D10, D11, D12, D13]<br/>: I2C interface - [pins D4, D5]<br/>: 3.3 Volt and 5 Volt power
+
=== 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.
  
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 ([http://arduino.cc/en/Reference/softwareSerial http://arduino.cc/en/Reference/softwareSerial]) can synthesize Tx and Rx pins on pins other then 0 and 1.
+
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.
  
Communication Protocols<br/>SPI:<br/>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 the Master device (such as an arduino) and the Slave device (such as a display or sensor).
+
==== 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]
 +
*I<sup>2</sup>C interface [pins A4, A5]
 +
*3.3V and 5V power
  
Here are the four signals (From wikipedia):&nbsp;<br/>SCLK&nbsp;: Serial Clock (output from master).<br/>MOSI&nbsp;: Master Output, Slave Input (output from master).<br/>MISO&nbsp;: Master Input, Slave Output (output from slave).<br/>SS&nbsp;: Slave Select (active low, output from master).
+
==== 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]
 +
*I<sup>2</sup>C interface [pins D4, D5]
 +
*3.3V and 5V power
  
A nice visual representation of this setup can be found here: [http://goo.gl/Yv06RM http://goo.gl/Yv06RM]
+
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.
  
I2C:<br/>I2C (Pronounced I-Squared-C or I-Two-C) Is one of the slower communication methods however it requires only two signal pins to implement and any new devices can be added to any location along the system. This makes it extremely useful for large circuits (like motherboards) because it keeps things clean and simple. The difference between I2C and SPI is that I2C does not support simultaneous two way communication.
+
=== Communication Protocols ===
  
The system works with two wires that all devices are connected to (the master and all the slave devices).&nbsp;<br/>SDA&nbsp;: Line of communication between master/slave and slave/master.<br/>SCL&nbsp;: Clocking signal (from the master)
+
==== 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 is a good visual representation: [http://goo.gl/UUdTko http://goo.gl/UUdTko]
+
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).
  
One very important point to note about I2C is that the SDA and SCL pins must both be "Pulled up" to Vcc with pull up resistors. The reason for this is tricky, and it is why I2C is able to do what it does. A quick google search should help you understand exactly why this is or if you would prefer, talk to myself or Keenan and we will go into it in more detail.
+
A nice visual representation of this setup can be found [http://goo.gl/Yv06RM here]:
  
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 chain 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. Again, all the devices receive data from the master but only the device whose address was called listens.
+
==== 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; 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.
  
This system is sort of like a group of people standing in a room. 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.
+
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)
  
Serial:<br/>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 [http://arduino.cc/en/Reference/softwareSerial http://arduino.cc/en/Reference/softwareSerial]) or the appropriate com ports must be reconnected.
+
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.
  
Tx&nbsp;: Transmit pin&nbsp;<br/>Rx&nbsp;: Receive pin
+
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.
  
To wire up a serial connection, connect the Rx of one device to the Tx of the other and vice versa. Here is a diagram of the basic process: [http://goo.gl/R0G53Z http://goo.gl/R0G53Z]
+
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.
  
Miscellaneous Acronyms<br/>PCB&nbsp;: Printed Circuit Board.<br/>IC&nbsp;: Integrated circuit. Basically a fancy packaged circuit, often to complex to recreate on a custom PCB, that can be easily implemented.<br/>PWM&nbsp;: Pulse Wave Modulation. Signal pins that support PWM have the ability to switch between high and low (on and off) at very high speeds. This allows them to synthesize a fake analog output.
+
==== 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.
 +
 
 +
==== 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.
  
 
== Parts ==
 
== Parts ==
  
[http://www.adafruit.com/products/1770 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.

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.

Parts

Touch Screen LCD