Capabilities
Microcontroller Programming
Embedded systems programming for microcontrollers, including low-level firmware, hardware interfaces, and device drivers.
FPGA/CPLD Firmware
RTL design and implementation in VHDL and Verilog for Lattice Semiconductor, AMD Xilinx, and Intel (Altera) FPGAs and CPLDs. Custom logic, high-speed interfaces, and hardware acceleration where a microcontroller alone isn't enough.
Communication Protocols
Implementation of industrial and consumer protocols: UART, I²C, SPI, Modbus RTU/TCP, USB, BLE, CAN, Ethernet, and more. Protocol stack integration and custom frame parsing.
Low-Power Optimisation
Sleep state configuration, peripheral power gating, and wakeup source management for battery-powered devices. Current profiling and optimisation to extend field service intervals.
Hardware Abstraction
Structured HAL design separating hardware dependencies from application logic. Enables unit testing on host machines and simplifies porting across hardware revisions.
Technical Specifications
| Parameter | Specification |
|---|---|
| MCU Families | STM32, nRF52, ESP32, AVR, PIC32 |
| Protocols | UART, I²C, SPI, Modbus RTU/TCP, USB, BLE, CAN, Ethernet |
| Tools | STM32CubeIDE, MPLAB X IDE, Arduino, etc |
| Languages | C, C++, VHDL, Verilog, Assembly (where required) |