|
PrefaceThis project was started because I wanted to automate soldering SMDs. Surface mounted devices are not developed for hand soldering. These devices are better soldered in wave soldering devices or in reflow ovens. The later can be implemented easily in home environment.
Reflow ovens are equipped with IR radiators. The target (PCB) absorbs the IR waves, and by the energy law, they get heated according the absorbed energy.
The idea came from one of the member of the gEDA-user list. Someone said, that he successfully soldered BGAs on PCB by an inexpensive toaster. He connected the a relay to his computer, and made some temp regulation.
My idea was to develop this little thing. I use an MCU to control the temperature, and a PT100 thermocouple as a temperature sensor. The radiators are driven by a triac. I use zero crossing detected driving, so it acts as a solid state relay, reducing noise on the mains line.
How it works
On the above picture, you can see the product of the development. The PCB is mounted in a case of an old computer power supply. The circuit consists of several parts, such as:
- The power supply
- The MCU
- The differential amplifier
- Current generator
- The power driver
- Several interfaces
- On-board thermometer
The current generator drives 1mA through the PT100 sensor. The PT100 thermocouple is connected to the differential amplifier. This amp has a gain of 10 and its output is connected to the A/D converter of the ATmega8. The software read samples of the amplified signal. According to the current required temperature, the MCU then uses a PID control to minimise temperature error of the oven. The temperature is controlled by a host computer through RS232 or USB interface.
A PT100 (at least what I use) can be used in temperature range of -70 °C to +500°C, which is sufficient for our purpose. It is built up by platanium metal, and has 100 Ohms of resistance at 0°C. The Tk value is 3850 ppm/K. The PT100 is connected to the PCB with four wires. This is essential to reduce noise.
The current generator feeds the PT100 sensor with a constant current. The voltage drop of the PT100 can be calculated as
U=I*RWhere U is the drop, I is the current of the source, and R is the current resistant of the sensor. The error of the current source will produce error on the voltage, and so the measurement. Why 1ma? Because each resistor with current going through it generates heat, which is called self heat. Self heat imply error too. The lower the current is the lower the error, however, you need more accurate, and ultra low noise amplifier. The output current of the current source is controlled by an input voltage. This voltage comes from the A/D of the MCU. The integrated converter outputs the reference voltage, and this drives the input of the current source. This technique is often used in A/D and PT100 interconnections. The output current can be calculated by:I=Uref/R16Where Uref is the voltage coming from the MCU (labelled AREF), R16 is the sense resistor of the current generator. Uref, according to the datasheet of the MCU, it can be 2.7, or 5 Volts (Vdd). I use 2.7 Volts, and have R16 of 2.7k, so the current will be 1mA. Note that the error of Uref does not make any difference in the result of measurements, since the error of the A/D will be the same as the error of the voltage drop of the sensor. These two errors will cancel each other out. The current source consists of an OPA.The differential amplifier amplifies the drop of the PT100. This voltage is around 100mV. This amplifier is built up by an OPA. It had to be low noise, and low voltage, rail-to-rail. I chose the MC33202DG, however I could only get some amps from Texas, but they are just doing the job well. The device soldered on the board is the TLC2272D.
The signal from the amplifier drives the A/D input of the MCU, and gets sampled and converted to 10bit words. The processor samples the signal a few times ten, and calculates moving average of the samples. This technique removes noise coming from the A/D and from the signal itself. The MCU performs a PID control to set the power of the toaster.
The power driver consists of opto triac, and a high power triac. The opto triac acts as a zero cross switch. This device decouple the MCU and the rest of the electronics from the mains.
How to build itThere are no special devices on the board. Just solder them as you do other things. However, you have to have extreme care when you solder the ATmega8, and the FT232BL. Keep in mind, that once you have that two soldered to the PCB, you'll probably never have to solder such devices by your hand! :-)
There are components on the schematics which should not be mounted to the board. These are U6, R10, R11. These components was there to trigger an interrupt, but since I use a zero crossing opto triac, the processor operates in asynchrony mode.
The thing can be controlled from serial line or via USB interface. If you want to use the serial line, install CONN2, U2, C5, C6, C7, C8, R17, R18. If you prefer USB then, R2, R3, CONN3, R5, R4, C10, C11, C12, X2, R19, R20. Note that you can install it all, and you can play with R19, R20 for USB and R17, R18 for serial line.
You have to pay attention for the PT100. In the prototype, the PT100 is mounted on a piece of PCB. Don't use soldering connections. Don't use screws. Why? Because it'll heated up to 300 Celsius, and it'll desolder itself! Screws will loose tightness at that heat. I know... What I use now is a short copper tube with 1mm of diameter. I inserted the + and - of the source and sense conductors, and applied a huge pressure to theme. It is tight, and heat resistant.
After the hardware is ready you can proceed to the software part. Before you start using it you have to measure several signals. First, try upload the firmware. The hardware was designed to be programmed by the USB500 programmer. Simply power up the device and start uploading the firmware by issuing
# make loadin the firmware directory. If the load is successful, connect the PT100 to the measuring terminals, get a multimeter, and measure the following things:
- The voltage of the 5V rail. Just for a short time at the output of the 7805, It must be around 5V. (You would not guess...)
- The reference voltage of the CPU. It must be ~2.7V
- The output current of the current generator. This measurement must be done two times. First with the PT100 in series, and without. Make sure that the sense wires is not connected when you measure the current. (just short circuit the sense signals). The current should be 1mA in both case.
- Now. Connect the sense signals to it's normal operation. Measure the voltage at the PT100 terminals. Depending of the temperature, it should be around 100mV.
- Measure the output voltage of the diffamp. It should be 10 times the voltage of the PT100.
If you have an oscilloscope, you can verify the AC performance as well. Just measure the above signals.
SoftwareThe software comes with two parts. One which is running on the MCU, and the other, which runs on the control host. These two speaks the same language, which is a protocol. The protocol was designed as a general purpose protocol, however, this is the only place where it's used so far. I plan to use it to communicate with other devices on a RS485 bus, so I implemented addressing, and such things. But it's not yet working, I should have said I left the opportunity to have addresses, frame numbers, etc.
UsageFirst of all you have to set up a heating profile. Once it's done connect the host computer to the board with a straight serial cable or with a USB A-B cable. Connect the PT100 and your heater to the board. Start the software with the appropriate file arguments. The software echos temperatures in 0.1 Celsius degrees. So 435 means 43.5 Celsius.
The first PCB soldered.With the heat profile of this...!!!CAUTION!!!The software is very in work in progress!!! It has several bugs! Don't ever leave the oven turned on! It can be really dangerous. Whatever heater you use, it was not designed to be operated in upside down, 90 degrees rotated, etc... My heater had a switch which detects up side down position, and switches the heater off. Of course I short the switch... So be extremely careful! I don't write this here since I must otherwise I could not sell the stuff... no. It's because it's a real danger. Imagine that the heater heats up to about 1000 Celsius!!! BTW, ALL WHAT YOU CAN SEE/DOWNLOAD FROM HERE COMES WITH ABSOLUTELY NO WARRANTY!!! So if you set your house on fire it is up to YOU. So USE AT YOUR OWN RISC!
FilesSchematics, PCBs, softwareLinksThis project was done using the gEDA suit.
This was done before.Happy soldering!
|
|