Skip to content

TZlindra/ELEC291Project1Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reflow Oven Controller

Contents

Overview

We built and programmed a controller to apply the reflow soldering process for assembling EFM8 boards with ovens in the UBC ECE Undergraduate Lab.

Hardware

This was built with a N76E003 microcontroller, ADC input peripherals and an op-amp circuit to amplify voltage measurements from a thermocouple.

System Architecture

This electronic circuit and its firmware was designed to achieve the state operations in the following Architecture Diagram.

We implemented a statemachine to go through each mandatory condition statement and state for the reflow soldering process to execute to completion in a safe manner. There was emphasis on meeting the necessary preconditions for the circuit to enable the subsequent stage.

Firmware

This was implemented in 8051 ASM. We structured the Firmware codebase to have peripheral functionality in dedicated .inc files. The Finite State Machine (FSM) controller was implemented in the MAIN.ASM and included these libraries to undergo the reflow process.

Modules

A large part of the system design involved interaction between different firmware modules and the I/O devices, as shown in this diagram.

ADC

The ADC firmware was a problem of its own. This was a several-step task, as shown in the diagram below.

The room temperature was read with a LML335 temperature sensor, which was straightforward to implement. For the thermocouple temperature, we built a dedicated op-amp circuit to amplify the voltage.

Through firmware, we performed arithmetic on the voltage read to account for the amplification and convert it into a temperature value.

The controller functionality relied on an accurate calculation of this to be summed with the room temperature and was required to be within 3C accuracy. We validated this extensively, using the Multimeter_Temp.pyw application.

Validation_Video.mp4

Compile & Flash

The build tasks in the .vscode file were set up to run :

  • the a51.exe executable to compile the MAIN.ASM file
  • the ISPN76E003.exe executable to flash the program onto the N76E003 (8051 family) microcontroller

Data Processing

To augment the user-feedback, we developed the Python application run with app.py. This was used to display the real-time incoming datastream, store it to a pandas table, and export it to a .csv for postprocessing in the Logbook subdirectory. The software backend and user interface was designed to receive serial transmission during state changes and indicate this to the user as well.

GCP Bucket

We set up a Google Cloud Platform (GCP) bucket for additional data post-processing, across multiple reflow processes. This enabled us to leverage a data warehouse and its Big Data handling capabilities if we needed the infrastructure to analyze our controller performance over many runs. The generated reflow process .csv was uploaded to the GCP bucket with the uploading.py package in the base application.

We also implemented the ability to download these with the downloading.py script.

Demonstration

We have uploaded our Final Demo on Youtube.

We have also attached our Project Report for detailed analysis of our engineered solution.

Credit

This was completed as part of the ELEC 291 - Design Studio project course in the The University of British Columbia Electrical and Computer Engineering undergraduate program. We received tremendous support and guidance from Dr. Jesus Calvino-Fraga.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •