The only source of knowledge is experience.
Different projects, different challenges.
Application layer is where we implement software behavior as what end-user expect.
Hardware Abstraction (HAL)
HAL layer is where application or middleware will be interface to physical peripherals like I2C.
Middleware consist of component and device specific driver implementation for application.
HAL development for NXP LPC
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.
Keyword: C, HAL, Ceedling.
Complete software development
This project is a UTM-based contract for developing 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.
Keyword: C, C++, Application, Middleware, BSP, OSAL, RTOS, HAL, Ceedling.
Sensor driver development
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.
Keyword: C++, Middleware, Ceedling.
Application software development
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.
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.
Keyword: C, C++, Python, SonarQube, Docker, Bitbucket.