Portfolio

Powered by experience, improve by knowledge.

Different projects have different challenges. Years of experience while learning new technology is our daily routine to serve you better.

Previous works,

Drive By Wire Software Development

This project we design, develop and deployed a drive-by-wire system for gas powered vehicle for a research institute in Malaysia. We provide 2-methods of communication protocol which is UART and CAN bus message for a computer to commandeer the vehicle velocity control and its heading direction.

Beside the working prototype, we also provide comprehensive software documentation, guidelines and operation sequence to reduce gap of understanding between stakeholders and ourselves. We mainly use UML to describe the software architecture and detailed design before firmware is implemented.

Keyword: C++, RTOS, FreeRTOS, Drive-By-Wire.

Generic RTOS & Hardware Abstraction for ESP32

This project we create generic OS Abstraction Layer (OSAL) with RTOS capability using FreeRTOS and generic Hardware Abstraction Layer (HAL) for ESP32 chipset. These generic interface has been proven to reduced migration and re-development time and effort when a project need to upgrade or change MCU from ESP32 to NXP for example.
 
With this structure, only HAL layer that need to re-developed without compromising other libraries and application code. The generic OSAL also make the project flexible in choosing wide variety of high performing RTOS other than FreeRTOS such as SafeRTOS, MicriumOS etc. without compromising other features.

Keyword: C, C++, ESP32, RTOS, HAL, OSAL, FreeRTOS

Hardware Abstraction for NXP MCUs

This project we create a set of HAL interface and definition for NXP LPC microcontroller. The peripherals involved are GPIO, I2C, SPI, ADC, PWM and TIMER. We designed the interface to be future-proof for client unforeseen projects, this improves ROI for initial investment.

In this HAL implementation, we migrate from LPC845 to LPC54114 MCU without changing anything on application, OSAL and middleware layer and it took just about ~3 days to complete the migration with tested.

Keyword: C, HAL, Ceedling.

High Performance Software with RTOS

This project we design, develop and deployed complete software solutions to control actuators, reading sensors and handling control systems using PID. The solution is built on top of ATmega2560 Atmel microcontroller and utilizing Real-Time OS (RTOS) to improve performance.

RTOS is not just about speed, its about meeting the deadlines which in embedded system is crucial otherwise, system behaviour would be uncertain and cause bugs. Handling and adding new tasks never been easier with RTOS framework. Every task has their allocated resources and not affecting other modules.

Keyword: C, C++, Application, Middleware, BSP, OSAL, RTOS, HAL, Ceedling.

Middleware GPS Sensor Driver

This project we create a sensor driver to be interfaced with the Application layer. The driver is designed to have generic interface and abstraction so that application implementations are not affected in case there are changes of sensor or device used.

Variance of sensors has been used for variance of products. Our developed driver for sensors is designed to be modular and adaptable to any new sensors (*minor modification may needed).

Keyword: C++, Middleware, Ceedling.

Machine Learning with YOLOv4

This project utilizes complete Python programming language development with combination of TCP/UDP communication to control remotely a drone. Besides, this application also uses state-of-the-art object recognition framework to track trained objects and gestures to control the drone.

Multi-threading handling is crucial for this project due to multiple UDP ports being used to receive sensors states, camera vision frame and sending command to the drone. All these is managed under Finite-State-Machine (FSM) to easily determine the drone behaviour.

Keyword: Python, Application, Object Recognition, Machine Learning, Python unittest.

Code Quality & Compliance

This project improves code quality and refine implementation to follow code compliance as suggested by using SonarQube software tools. We set SonarQube quality check scan for every Pull Request to the Main branch in Bitbucket. This improves code health in the development branch and avoids potential pitfalls.

There also Quality Gates that can be customised by management in order to set higher quality standard of deliveries among developers. We provide training for SonarQube and able to host the server for your project annually.

Keyword: MISRA, CERT, C, C++, Python, SonarQube, Docker, Bitbucket.

Continuous Integration & Deployment

We able to automatically compile the software, run unit tests, check for coverage results and perform static analysis at every Pull Request (PR) or when there are commits to the Master or Release branch. This will ensure code quality is met before deploying and releasing the software. 

Our CI/CD process are powered by Docker containers and the infrastructure is built on top of Atlassian excellent services such as Bitbucket, Pipeline etc. We can consult and help your project to meet the CI/CD requirement to improve in-house development and software deployment.

Keyword: CI/CD, Bitbucket, Docker, Pipeline, Unit Test, Ceedling, ARM GCC, Gcovr.

Our clients