Projects
As an electronics hobbyist, I’ve had the pleasure of completing some pretty cool side projects and university/diploma projects. They are listed in reverse chronological order.
Pico-BLDC-Controller
I’m designing a custom hotplate magnetic stirrer to integrate into our lab’s Opentrons robot at the Manufacturing Future Lab, University College London.
As this is my first time designing motor control systems, specifically for a BLDC motor, I’m using a half-bridge configuration to control the three-phase input.
I am quite nervous designing anything that handles more than 5V. The motor we have in the lab is a 260W 30V/7A Maxon motor.
I’m using a Raspberry Pi microcontroller, specifically the new RP2350 dual-core model running at 150 MHz, because its design is much simpler than that of an STM32 MCU. I’ve come across many discussions claiming the RP2350 is not ideal for controlling BLDC motors, particularly when reading the current output. It’s considered “slow” in converting ADC values compared to the STM32. However, I plan to open-source the design entirely, and I hope someone with more expertise can use it to develop firmware that addresses this issue.
For the pre-driver, I’ve chosen the Texas Instruments DRV8350S. This IC significantly reduces the component count and complexity of the design. I won’t need to implement filtering, snubbers, or anything like that—just the pre-driver and the MOSFET gate. Mah brain is not build for complicated things (XuX)
On the software side, I’m implementing the SimpleFOC library to save development time. Maybe if the motor runs well, I’ll create the firmware from scratch?
The schematic is complete-ish. I have sent it to multiple colleagues and online forums for feedback. I spent a lot of time going back and forth on my component choices, but it was a great learning process. I’ll post updates along the way.
You can download my schematic by clicking this link: Download PDF.
RVDR V2.0
Completed in 2023 - not to be confused with RVDR+
This is the second revision of the Road Vehicle Data Recorder (RVDR). It’s a smaller version of the original with a few key changes:
- Replaced the GNSS module with a u-blox CAM-M8 series module that has a built-in antenna (an external antenna is optional).
- Replaced multiple sensor ICs with a single TDK ICM-20948 9-Axis MEMS motion tracker (though this is technically a downgrade from the previous 10-DOF sensor).
- Reduced the size to match that of a Raspberry Pi Zero W.
- Added an option on the back of the board to select the communication protocol: UART, SPI, or I2C.
TIP
There are a few things I can do to improve the design, like implementing a single voltage shifter IC (e.g., Analog Devices MAX3378EE) rather than using multiple MOSFETs for level-shifting. This would free up space for more sensors. Perhaps this is something I could explore in the third revision.
The Kenit Numpad
Meet “The Kenit” Numpad (I ran out of ideas for what to name it). This time, I experimented with the KiCad “Rounded Tracks” plugin. Does it have any practical benefit? Probably not, but does it look cool? Definitely!
1-تواه/Tuah-One
1-تواه/Tuah-One! A custom 75% mechanical keyboard project based on an open-source schematic. After months of design, it was put into production in April this year. And… that’s it. The chip shortage and the high cost of producing a small quantity made it very, very expensive.
I tried to arrange the diode array in a manner that resembles traditional Malay carving (ukiran tradisional Melayu)—a repeated shape with slight differences in a repeating arrangement. It may not look like much, but I tried.
“1-تواه/Tuah-one” means “lucky one”—well, not exactly. A quick Google Translate shows “tuah” is “good luck,” written in Jawi (the Malay alphabet system before the Latin alphabet was introduced). It’s paired with pixelated art of “Hang Tuah,” a Laksamana (Admiral) in 15th-century Melaka, considered by Malays to be one of history’s greatest silat masters. Hang Tuah is wearing a traditional Malay headgear called “Tengkolok” or “Tanjak,” hence the triangular look (I tried :P).
Update - 21/06/2025
After 3 years of planning, designing, fabricating, assembling, testing, and a sprinkle of procrastination, here it is: Tuah-one/1-تواه! My attempt at an “Ukiran Melayu” inspired design.
Now the keyboard sits inside my office closet (10 months and counting) and never sees the sunlight. [insert sad violin music]
TIP
One last thing… I’m selling this. Seriously. If any buyers or companies want to license my design, I’m open to talk. 😂
Individual Project Dissertation
Associated with - The University of Manchester
Design and Application of a Tuneable Optical Filter for High-Speed Optical Communication Systems (MATLAB)
I designed the arrangement of passive optical filters (Fibre Bragg gratings) in an optical fiber for a high-speed communication system. I then simulated it with different wavelength bands to obtain over 95% transmission. This experiment focused on the near-infrared (800nm+) and visible light (400-700nm) spectrums.
Embedded Systems Project
Associated with - The University of Manchester
I led software development for a buggy capable of autonomously following a line using reflective optical sensors. We approached the problem systematically by prioritizing simpler tasks first.
RVDR V1.0
Associated with - German-Malaysian Institute
I led software and PCB development for a “black box” device for a logistics fleet. The device consists of a camera module, GPS (GNSS), an IMU sensor, and an OBD-II reader to send live data to an MQTT client (Losant IoT) for real-time data visualization.
Java Programming - Multithreading Operation
Associated with - German-Malaysian Institute
Coursework: Build an Alarm Clock
I modeled a multithreaded alarm clock in Java. This approach allows for concurrent operations to maximize CPU utilization.
#####
The code is too long, and I no longer understand Java. 😐