Core Competencies
Programming Languages
Microcontrollers
Communication Protocols
RTOS & Embedded
Development Tools
Hardware
Debugging & Testing
Automation & Control
PhD Research Background
Dynamically Constrained Trajectory Planning for Parallel Manipulators — Case Study: Hybrid Cable/Serial Robots
Implementation of real-time control algorithms in C/C++ for parallel robot systems. Development of trajectory planning algorithms with singularity and collision avoidance.
Task-Space and Joint-Space control for hybrid robots. Development of control strategies to maintain positive cable tensions via linear programming and null-space approach in C/C++.
Experimental setups with C/C++-based control and data acquisition. Integration of sensors, encoders, and motor controllers into prototypes.
Newton-Euler and Lagrange formulations for rigid bodies in C/C++. State-space representation and simulation of robot systems.
Design of an exoskeleton system for lower-limb rehabilitation with embedded control. Motion planning with real-time capable algorithms.
Minimization of total trajectory time under dynamic constraints. Optimization of cable tensions with C/C++ implementation.
Key Research Outcomes
- ▸Novel planning algorithm in C/C++ for hybrid cable/serial robots — GitHub Repository
- ▸Implementation and comparison of two strategies for maintaining positive cable tensions (Null-Space proven superior)
- ▸Successful simulation of an exoskeleton rehabilitation system with real-time capable algorithms
- ▸Proof of feasibility through comprehensive dynamic analysis and experimental validation
- ▸Development of models and control strategies suitable for practical real-time implementations
Professional Experience
- ▸Developed 45+ hands-on microcontroller projects using PIC, Arduino, STM32, and AVR
- ▸Register-Level Programming, interrupt handling, timer configuration, and PWM generation
- ▸Implemented UART, I2C, SPI protocols for sensor integration and device communication
- ▸Designed PWM-based motor controllers and PID regulators in C/C++
- ▸Integrated FreeRTOS on STM32 for task management and real-time control
- ▸PLC programming, GRAFCET sequence control, industrial sorting systems, and robot control
- ▸PCB prototyping, circuit design, debugging with oscilloscope and logic analyzer
- ▸Trained hundreds of students and technicians in Embedded C/C++ and microcontroller programming
- ▸Dissertation: Dynamically Constrained Trajectory Planning for Parallel Manipulators — Hybrid Cable/Serial Robots
- ▸Developed real-time control algorithms in C/C++ for parallel robot systems
- ▸Implemented trajectory planning algorithms with singularity and collision avoidance
- ▸Embedded control systems for cable robots with positive tension control
- ▸Hardware integration of sensors, encoders, and motor controllers in prototypes
- ▸Designed a lower-limb rehabilitation system based on exoskeleton technology
- ▸Thesis: Dynamic Path Planning for Cable-Driven Robots
- ▸Developed control algorithms in C/C++ for cable robots
- ▸Prototyping with embedded controllers and real-time data acquisition
- ▸Integration of sensors and actuators with microcontroller-based systems
Technical Projects
Embedded C/C++
NES Emulator on ESP32
Full NES emulator in C/C++ for ESP32 microcontroller — CPU emulation, PPU rendering, memory mapping, and controller handling.
NES Emulator (Desktop)
NES emulator in C++ with 6502 CPU emulation, PPU implementation, and memory management.
BENCPU
Implementation of a CPU architecture in C/C++ for educational and simulation purposes.
CPU Visualizer (ImGui)
CPU visualization with docking ImGui interface.
Microcontroller Course Materials
Comprehensive microcontroller courses with practical examples, code snippets, and exercises for PIC, Arduino, and STM32.
Robotics
Cable-Driven Robot (CDDR2024)
Updated cable-driven direct-drive robot implementation — trajectory planning and control.
RRbot Simulation
Robot simulation and control algorithms in Python.
Singularity Analysis
Mathematical equations for singularity analysis of hybrid serial cable-driven planar robots.
Game Dev
Full-Stack
Microcontroller Projects (45+)
PIC (Assembly/C): RBO/INT interrupt, ISR creation. Arduino (C++): attachInterrupt(), button debouncing. STM32 (HAL): EXTI configuration, NVIC priority management.
PIC: Timer0/1/2 in C, precise time control. Arduino: millis(), micros(), non-blocking delays. STM32: Timer configuration (HAL/Register-Level), PWM generation.
PIC: ADC module in C, potentiometer reading. Arduino: analogRead(). STM32: Continuous ADC mode, DMA transfer, multi-channel sampling.
PIC: CCP module, H-bridge control (L298N). Arduino: analogWrite(), encoder feedback, PID control in C++. STM32: Timer-PWM, encoder interface, digital PI regulator.
PIC: USART in C, PC communication. Arduino: Serial, sensor data logging. STM32: UART with HAL, interrupt-driven reception, DMA.
Arduino: Temperature sensors (LM75, BME280). STM32: I2C configuration (HAL), register access, multi-master.
Arduino: SPI display, SD cards. STM32: SPI configuration, high-speed transfer.
Multitasking in C, task creation, queue communication, semaphores, mutex, timer tasks, memory management.
Low-Level Programming Expertise
Direct register manipulation in C for STM32, PIC, AVR. Configuration of peripheral registers, clock setup, GPIO control.
ISR implementation in C/Assembly, interrupt priorities, nested interrupts, context switching.
STM32 DMA configuration in C, memory-to-memory, peripheral-to-memory transfer, circular mode.
Sleep modes, power management, wake-up sources, low-power timer, RTC wakeup.
Custom bootloader in C, flash programming, UART/CAN bootloader, firmware update over-the-air (OTA).
Education
PhD (Dr.-Ing.) in Mechanical Engineering & Robotics
2012 – 2017ENIM · Tunisia
Thesis: Dynamically Constrained Trajectory Planning for Hybrid Cable/Serial Robots
Master in Mechanical Engineering & System Technology
2009 – 2011ENISO · Tunisia
Thesis: Dynamic Path Planning for Cable-Driven Robots
Engineering Degree in Electromechanics
2001 – 2004ENIS · Tunisia
Mathematical Baccalaureate
1997 – 1998· Tunisia
Languages
Key Achievements
- Developed trajectory planning algorithms in C/C++ for parallel robots
- HackerRank badges: Problem Solving, C++, Java, Python, 30 Days of Code, 10 Days of JavaScript
- HackerRank C++ solutions repository
- HackerRank Python solutions repository
- Developed 45+ Embedded C/C++ projects with extensive documentation
- Trained hundreds of students and technicians in Embedded C/C++ and microcontroller programming
- Singularity analysis of hybrid serial cable-driven planar robots (PhD research)
- Cable-robot-R: MATLAB trajectory planning and control
Others
- Developed a full NES Emulator on ESP32 — complete 6502 CPU emulation in C/C++
- Implemented CPU architectures and microcontroller simulations (BENCPU)
- NES Emulator (Desktop) — 6502 CPU emulation, PPU, memory management
- CPU Visualizer with docking ImGui interface
- Successfully integrated FreeRTOS into STM32-based real-time control systems
- Internship — Maintenance & Quality · Gamma Sac Company (2004)
- Internship — Machine Department · Societe Ciment Enfidha (2002–2003)
Why This Experience Counts
With 15+ years of applied experience across research, teaching, and industry, here is what I bring to your embedded systems team:
- Develop complex Embedded Systems in C/C++ — from Bare-Metal to RTOS
- Master low-level hardware programming with direct register manipulation
- Implement real-time algorithms for industrial and medical applications
- Effectively use various microcontroller platforms (PIC, Arduino, STM32, ESP32)
- Perform complete hardware-software integration from circuit to firmware
- Apply modern embedded best practices and design patterns
- Efficiently solve algorithmic problems (proven through HackerRank profile)
- Document and communicate complex technical systems to other developers