Hello, I'm Thenul de Mel
Electronics Engineering Student @ UTS
Passionate about embedded systems hardware design, firmware optimization, and signal processing. Bridging physical circuits and digital intelligence to solve real-world engineering challenges.
About Me
> Engineering at the Hardware-Software Interface
I am an Electronics Engineering student at the University of Technology Sydney (UTS). My academic journey and hands-on projects focus on translating engineering principles into hardware solutions. I have a deep passion for electronics design, circuit simulation, and embedded firmware development.
Whether designing clean multi-layer PCBs, implementing complex PID loops for robot automation, or analyzing digital signals, I thrive on optimizing efficiency and performance. I believe the best engineering solutions emerge when we pair robust analog designs with clean, efficient software.
Technical Skills
Hardware Engineering
Designing reliable physical circuits, PCB routing layout, and sensory component integration.
-
PCB Design & Routing Altium Designer
-
Microcontroller Prototyping ESP32 / STM32
-
Circuit Analysis & Simulation Multisim / LTspice
Software & Firmware
Writing low-level code, system utilities, and designing digital signal processing software.
-
Embedded Firmware C / C++
-
Signal Processing & Scripts MATLAB
-
Automation & Hardware APIs Python
Instrumentation & Tools
Utilizing industrial software diagnostics, signal analysis tools, and version control.
-
Design & Simulation Tools Altium / Multisim
-
Lab Instrumentation Oscilloscope / Mux
-
Version Control & APIs Git / GitHub
Featured Projects
IoT Smart Weather Station
A high-efficiency meteorological monitoring hub utilizing an ESP32 microprocessor. The system manages sensor data readings, network transactions, and low-power sleep schedules via a preemptive real-time operating system scheduler (FreeRTOS).
System Architecture
The weather station operates by creating parallel RTOS tasks pinned to the ESP32's dual processor cores. Core 0 manages the physical sensor sampling, while Core 1 handles Wi-Fi connections and REST API queries.
// ESP32 FreeRTOS Task structure for Sensor Reading & IoT Upload
#include <Arduino.h>
#include <WiFi.h>
#include "DHTesp.h"
TaskHandle_t SensorTaskHandle = NULL;
QueueHandle_t SensorQueue;
void readSensorTask(void *pvParameters) {
DHTesp dht;
dht.setup(23, DHTesp::DHT22);
for(;;) {
float temp = dht.getTemperature();
float hum = dht.getHumidity();
// Package data and push to synchronization queue
xQueueSend(SensorQueue, &temp, portMAX_DELAY);
// Block for 2 seconds (preemptive scheduler releases core CPU)
vTaskDelay(pdMS_TO_TICKS(2000));
}
}
Autonomous Line-Following Robot
A high-speed automated robotics chassis using a feedback-loop control structure. Using an arrays of infrared photo-reflectors, the system calculates deviations from path vectors in real-time, executing corrections via proportional-integral-derivative (PID) regulation.
Control Loop Implementation
The robot continuously polls the analog voltages of 5 infrared reflectance sensors, converting readings into a normalized coordinate value. The system computes correction outputs up to 100 times per second.
// PID Control Algorithm for Line-Following Differential Drive
float Kp = 1.2, Ki = 0.05, Kd = 0.5;
float error = 0, lastError = 0, integral = 0, derivative = 0;
int targetPosition = 0; // Ideal center position
int baseSpeed = 150; // Standard cruise PWM
void calculatePID() {
int position = readIRArray(); // Returns -500 to 500 deflection
error = targetPosition - position;
integral += error;
derivative = error - lastError;
float correction = (Kp * error) + (Ki * integral) + (Kd * derivative);
lastError = error;
// Modulate asymmetrical speeds to H-bridge drivers
adjustMotors(baseSpeed + correction, baseSpeed - correction);
}
Digital Signal Processor Audio Filter
A software-defined audio filtration module modeled inside MATLAB. Designs high-order Finite Impulse Response (FIR) and Infinite Impulse Response (IIR) filtering equations to extract high-frequency noise from input sound vectors.
Signal Flow Structure
The digital filter loads raw WAV streams, applies a Fast Fourier Transform (FFT) to diagnose noise frequencies, designs standard lowpass window constants, and applies the convolution algorithm to filter noise.
% MATLAB script to design FIR Lowpass Filter for Audio Noise Cancellation
Fs = 44100; % Sampling Frequency (Hz)
Fc = 3000; % Cutoff Frequency (Hz)
N = 64; % Filter Order
% Calculate Normalized Cutoff Frequency
Wc = Fc / (Fs / 2);
% Generate FIR filter coefficients using Hamming window
h = fir1(N, Wc, 'low', hamming(N+1));
% Apply filter to noisy input signal via convolution
filteredAudio = filter(h, 1, noisyInputSignal);
% Plot original vs filtered signals in frequency domain
freqz(h, 1, 512, Fs);
Get In Touch
Let's build something epic
I'm always open to discussing embedded system designs, PCB collaborations, internship opportunities, or academic electronics engineering queries. Reach out via email or connect with me on GitHub and LinkedIn.