Johnny's Project Portfolio
Software and Electronics
I have a wide range of software, machine learning and electronics projects
More projects are coming...
A passionate software developer in the IoT world
a software and electronics hobbyist and I'm happy hacking...
I have a wide range of software, machine learning and electronics projects
More projects are coming...
Demo of YOLO-X running on Qualcomm SM6225 SoC, showing real-time object detection inference with DSP processing.
Demo of Quantized FP16 BiseNet semantic segmentation model running on Qualcomm QCS8550 with its NPU(HTP) runtime delegation.
Developed a Qt desktop application in C++ for real-time GPS data visualization on Google Maps. Interfaced with STM32 and GNSS module to read NMEA sentences using DMA. The application supports live data processing, network utilities, and records GPS data for post-analysis.
Developed a custom USB driver to interface STM32 with Silicon Labs CP2105 dual UART-to-USB bridge. Analyzed USB packet data and implemented control transfer requests for VCP communication. Integrated driver with FreeRTOS to achieve real-time data transfer across multiple endpoints.
Don't want to wait for 4 - 6 months to book your next road test at ICBC? Check out the ICBC booking bot to notify you the earlier available time slots. Once it became available, it will send you an email! The web scraper bot will constantly checking the available appointments to help you secure your spot!
Developed a Robot Fighter that beats NPC enemy using Reinforcement Learning. It was written in JAVA, to be compatible with Robocode API. The Agent learns the environment using SARSA technique and became more and more intelligent by practicing supported by MLP.
Synthesized metal surface crystallographic imaging dataset using Voronoi diagrams. Signal processing techniques were developed to process and analyze metal grain size, grain number, mean grain area to determin the physical characteristics of the material. Convolutional Neural Networks were trained to perform automatic grain map analysis.
Developed End-to-End Faster-RCNN models for TB detection from lung X-ray radiographies. The model is able to localize TB areas and classify TB type, backed with Vision TRansformer Backbone utilizing attention mechanism. Metrics used to evaluate the model performance are APbb50, Precision and Recall.
Collected and augmented custom guitar chord dataset. Developed Hand-pose and vision based approach for chord prediction.
I developed a 3D model viewer in Python and OpenGL, designed for high-quality graphics rendering with six degrees of freedom for camera and object movement. It features dynamic lighting, custom shaders for realistic textures, and supports multiple light sources including point and directional lights. The viewer allows interactive model manipulation—rotation, scaling, and translation—providing an intuitive user experience for detailed 3D analysis. This project highlights my skills in 3D graphics programming and rendering optimization.
I developed a Doppler-radar-based speed detector that contains a custom-defined signal conditioning circuit and a programmed microcontroller that calculated FFT at 50 Hz to derive vehicle speed. The speed data was transmitted via RS-485 to a customized interface for further processing using a CPLD chip. RTL design via Verilog was implemented to map the serial data to parallel for driving the 7-segment display.
Developed a line following vehicle to realize digital PID control. It has various sensors to track speed and orientation.
I designed and implemented a two-switch forward converter that efficiently regulates 30V AC to 15V DC. Using PLECS and MATLAB, I modeled and optimized the control system, identifying ideal component values for peak performance. The project involved designing two-layer PCBs with KiCAD, crafting custom magnetic components for energy storage, and thorough testing in the lab with tools like oscilloscopes and bench power supplies. This converter showcased robust handling of rapid load changes and consistent delivery of regulated DC output, enhancing my expertise in analog control systems and power electronics design.
I developed a dynamic tone mapping algorithm to convert High Dynamic Range (HDR) videos to Standard Dynamic Range (SDR). The algorithm utilizes a combination of frame-by-frame histogram equalization and gamma correction to adjust the luminance levels in each frame. This project showcases my expertise in image processing and video editing, as well as my ability to optimize video quality for different display devices and environments.