Products
Our best offer to you is Quality, Tested and Reusable code.
Reuse our fully defined, well-tested, documented software and drivers, OSAL, HAL & BSP package for 8/32-bit MCUs.
Board Support Package (BSP)
Every BSP implementation regardless MCU use exact Hardware Abstraction Layer (HAL) interface. This abstraction helps for seamless migration from one MCU to another without affecting other software components.
This BSP is the realization of our generic HAL API, which has now existed for 4 years without major changes and is used on 3 different platforms such as the Microchip PIC32 series and the NXP LPC series. This BSP is also used in our device driver implementation so that our driver is platform and operating system independent. The BSP design is simplified yet dynamic enough to support any peripheral function while maintaining the genericity of the interface.
Our list of available BSPs may not be very long and covers a variety of MCUs with different architectures, but based on our experience, you only need a small selection of MCUs, but with stable, well-tested and highly configurable BSPs and HAL interfaces that can be safely used with RTOS. Each BSP is supplied with a sample program in bare metal and RTOS as well as a software design document for evaluation purposes.
Further details about our HAL can be found at https://hal.thmuda.com
Microchip PIC32MK, PIC32MX and PIC32MM
High performance and extensive peripheral functions. Suitable for medium to highly complex projects that require a lot of computing power, digital signal filtering and CAN FD communication. In addition, this type of MCU has numerous PWM and Quadrature Encoder Interface (QEI) channels, making it suitable for motor control application.
Capability
- 32-bit, MIPS32 architecture
- Max. running frequency 120 MHz
- 1MB on-chip flash memory
- Class B Safety Library, IEC 60730
- 256 KB SRAM
- -40 °C to +125 °C
- Bare-metal & RTOS
- Compatible with C/C++
- Follow MISRA C:2004, MISRA C:2012
- Complete Board Support Package (BSP) implementation less than 43 Kbytes.
Features
- CAN FD (4-channel)
- ADC (42-channel)
- DAC (3-channel)
- GPIO (78-I/O)
- I2C (4-channel)
- PWM (12-channel)
- QEI (6-channel)
- RTC (Real-time Clock & Calendar)
- SPI (6-channel)
- TIMER (9-channel)
- UART (6-channel)
- NVM (Non-Volatile Memory)
- WDT (Watchdog)
- Customised & generic bootloader
NXP LPC54xx, LPC55xx and LPC51Uxx
High performance with dual-core ARM Cortex in a single chip, contains ARM Cortex M4 and Cortex M0+. This type of MCU helps to increase system reliability and is suitable for projects of medium complexity. It has fewer peripherals than the Microchip PIC32, but not all applications need them all.
Capability
- 32-bit, ARM Cortex M4
- Max. running frequency 150 MHz
- 256 KB on-chip flash memory
- 32 KB SRAM
- -40 °C to +105 °C
- Bare-metal & RTOS
- Compatible with C/C++
- Follow MISRA C:2004, MISRA C:2012
- CMake ready build system
- Complete Board Support Package (BSP) implementation less than 5 Kbytes.
Features
- ADC (12-channel)
- GPIO (48-I/O)
- I2C (8-channel)
- PWM (8-channel)
- RTC (Real-time Clock)
- SPI (8-channel)
- TIMER (5-channel)
- UART (8-channel)
- WDT (Watchdog)
NXP LPC82x, LPC84x and LPC11Uxx
ARM Cortex M0+ MCU with low power consumption, which is best suited for simple to medium complex applications. Don’t worry about transitioning your application software, be it more complex in the future, swapping this MCU to higher performance MCU that can support RTOS such as LPC54xx or PIC32xx will be seamless with our BSP and HAL interface.
Capability
- 32-bit, ARM Cortex M0+
- Low-power optimization, max. running frequency 30 MHz
- 64 KB on-chip flash memory
- 16 KB SRAM
- -40 °C to +105 °C
- Bare-metal OS
- Compatible with C/C++
- Follow MISRA C:2004, MISRA C:2012
- CMake ready build system
- Complete Board Support Package (BSP) implementation less than 5 Kbytes.
Features
- ADC (12-channel)
- DAC (2-channel)
- GPIO (42-I/O)
- I2C (4-channel)
- PWM (7-channel)
- SPI (2-channel)
- TIMER (4-channel)
- UART (3-channel)
- WDT (Watchdog)
OS Abstraction Layer (OSAL)
OSAL implementation for future supported RTOS such as ThreadX will use exact generic OS Abstraction Layer interface that being used for FreeRTOS. This abstraction makes it possible to migrate from one RTOS to another without affecting other software components.
FreeRTOS
Capability
- Non-specific MCU implementation
- Support all MCU with 128 KB flash memory and at least 8 KB RAM
- Timing critical application
- Compatible with C/C++
Features
- Task
- Timer
- Queue
- Delay (block, non-block)
- Mutex, Semaphore
- Memory allocation
- and more..
We also provide,
Consultation & Training
Services
- 2 hours free consultation for any type of embedded software
- More than 10 years of experience in the automotive, aerospace and consumer electronics industries
- Experience in developing and managing large, legacy code bases
- Insight into safety-critical software applications, requirements and know-how for DO-178C and EN-4709 certification
- DevOps, streamlining software development practices and more.
Software Requirement, Architecture & Design
Services
- Designed with Unified Modelling Language (UML) format
- Software design document including but not limited to,
- Software requirement
- Class diagram
- Component diagram
- State diagram (optional)
- Sequence diagram
- Timing diagram
- Proof-of-Concept (POC) realization of the design
Application Software
Features
- Implementation from software design and requirements
- Refinement and improvement of the existing detailed design (optional)
- RTOS or bare-metal OS
- Code conformity according to MISRA C/C++, CERT, CWE
- White box and black box testing
- Static code analysis report
- Compliance with internationally recognized coding standards for C and C++
- Proficient in C and Python programming languages, medium expert in C++
Sensor & Device Drivers
Features
- Implementation from system requirement
- Graphics: LCD, OLED .. more
- Sensors: distance, movement, RTH, air quality, GPS, encoder … more
- Radio: Wi-Fi, bluetooth, LoRA .. more
- Motor control: DC, 3-phase brushless, servo, stepper … more
- Code compliance according to MISRA C/C++, CERT, CWE
- Static code analysis report
- Compliance with internationally recognized coding standards for C and C++
- Sample programs and software design documents are available for each product
Finite State Machine (FSM) for Embedded System
Capability
- Non-specific BSP, OSAL or MCU implementation
- Compatible with C/C++
- Follow Embedded C coding standard and MISRA C:2004, MISRA C:2012
- Event-driven support, works best with RTOS
- Fully tested with 100% line and branch coverage
Features
- Customized state flow control with state back and forward capability
- Entry and exit function as guards before and after running a state
- Synchronous and deterministic implementation
- Event and error timing monitoring
- State flow control, easily configured