Instructor-led live training courses on Embedded Systems, available both online and onsite, illustrate the core concepts and advanced topics of Embedded Systems through interactive, hands-on practice.
Embedded Systems training is offered as either "online live training" or "onsite live training". The online live training (also known as "remote live training") is conducted using an interactive remote desktop. Onsite live training can take place locally at the customer's location in Plovdiv or at NobleProg's corporate training centers in Plovdiv.
NobleProg -- Your Local Training Provider
Business Center Plovdiv
Han Kubrat St 1, Plovdiv, Bulgaria, 4017
This is the most modern business center in the city, with all the necessary functionalities, while being located in a green part of the city.
It is about 20 minutes by bus from the main train station as well as the city center.
This course focuses on applying intermediate-level Rust skills to resource-constrained and low-level hardware environments. It covers essential topics such as toolchains, safety patterns, real-time considerations, and deployment workflows.
Designed as an instructor-led live training (available online or onsite), this program targets intermediate Rust developers and embedded engineers who aim to develop safe and reliable firmware using Rust.
Upon completion, participants will be equipped to:
Set up and configure a Rust embedded toolchain along with a debugging environment.
Write idiomatic, memory-safe firmware by leveraging no_std and embedded-hal abstractions.
Design and implement concurrency and interrupt-safe code in Rust.
Deploy, debug, and benchmark Rust firmware on actual hardware.
Format of the Course
Interactive lectures and discussions.
Hands-on labs utilizing physical or simulated hardware.
Guided exercises featuring incremental code development and live debugging sessions.
Course Customization Options
To arrange customized training for this course, please contact us directly.
This instructor-led, live training in Plovdiv (online or onsite) is designed for developers and embedded systems engineers who wish to utilize Rust for embedded systems programming and acquire the necessary skills to develop robust and efficient embedded applications.
Upon completing this training, participants will be able to:
Establish a development environment for Rust-based embedded systems programming.
Comprehend and work with microcontrollers and their peripherals using Rust.
Write efficient and reliable code tailored for resource-constrained embedded systems.
Address concurrency and real-time requirements in embedded applications.
Interface with hardware and employ low-level abstractions in Rust.
Implement power management and low-power optimization techniques in embedded systems.
This instructor-led, live training in Plovdiv (online or onsite) is designed for intermediate-level automotive engineers and technicians aiming to acquire hands-on experience in testing, simulating, and diagnosing ECUs using Vector tools like CANoe and CANape.
By the end of this training, participants will be able to:
Understand the role and function of ECUs in automotive systems.
Set up and configure Vector tools such as CANoe and CANape.
Simulate and test ECU communication on CAN and LIN networks.
Analyze data and perform diagnostics on ECUs.
Create test cases and automate testing workflows.
Calibrate and optimize ECUs using practical approaches.
This instructor-led, live training in Plovdiv (online or onsite) targets intermediate-level automotive engineers and embedded systems developers who wish to comprehend the theoretical aspects of ECUs, emphasizing Vector-based tools and methodologies used in automotive design and development.
By the end of this training, participants will be able to:
Understand the architecture and functions of ECUs in modern vehicles.
Analyze communication protocols used in ECU development.
Explore Vector-based tools and their theoretical applications.
Apply model-based development principles to ECU design.
This instructor-led, live training in Plovdiv (online or onsite) is designed for intermediate-level embedded systems engineers and AI developers looking to deploy machine learning models on microcontrollers using TensorFlow Lite and Edge Impulse.
Upon completion of this training, participants will be able to:
Grasp the fundamentals of TinyML and its advantages for edge AI applications.
Configure a development environment suitable for TinyML projects.
Train, optimize, and deploy AI models on low-power microcontrollers.
Utilize TensorFlow Lite and Edge Impulse to build real-world TinyML solutions.
Enhance AI models for better power efficiency and memory utilization.
Embedded systems are specialized computing platforms engineered to execute specific tasks within broader technological frameworks. The Internet of Things (IoT) refers to a vast network of physical devices equipped with sensors and software, enabling them to communicate and exchange data via the internet.
This instructor-led training session, available both online and onsite, is tailored for entry-level technical professionals eager to grasp and implement embedded systems and IoT principles using C programming and microcontroller architectures.
Upon completing this training, participants will be capable of:
Gaining a thorough understanding of embedded system architecture and its constituent parts.
Writing and compiling C code to facilitate interaction with embedded hardware.
Operating microcontroller peripherals, including timers and ADCs.
Comprehending the role embedded systems play within IoT architectures.
Course Format
Engaging lectures and group discussions.
Extensive practical exercises and hands-on practice.
Live-lab implementation exercises.
Customization Options
For tailored training on this subject, please reach out to us to make arrangements.
This instructor-led, live training in Plovdiv (online or onsite) is aimed at engineers who wish to learn how to use embedded C to program various types of microcontrollers based on different processor architectures (8051, ARM CORTEX M-3, and ARM9).
In this instructor-led live training in Plovdiv, participants will learn how to program Arduino for practical applications, such as controlling lights, motors, and motion detection sensors. This course requires the use of actual hardware components within a live laboratory setting, rather than relying on software-simulated hardware.
Upon completion of this training, participants will be able to:
Program Arduino to control lights, motors, and other peripheral devices.
Gain a comprehensive understanding of Arduino's architecture, including its inputs and connectors for expanding functionality with add-on devices.
Integrate third-party components such as LCDs, accelerometers, gyroscopes, and GPS trackers to enhance Arduino's capabilities.
Evaluate various programming language options, ranging from traditional C to visual drag-and-drop environments.
Test, debug, and deploy Arduino solutions to address real-world challenges.
Is C++ appropriate for embedded systems such as microcontrollers and real-time operating systems?
Should object-oriented programming be employed within microcontrollers?
Is C++ too abstracted from the hardware to ensure efficiency?
This instructor-led, live training addresses these questions and demonstrates through discussion and practice how C++ can be utilized to develop embedded systems with code that is accurate, readable, and efficient. Participants put theory into practice through the creation of a sample embedded application in C++.
By the end of this training, participants will be able to:
Understand the principles of object-oriented modelling, embedded software programming and real-time programming
Produce code for embedded systems that is small, fast and safe
Avoid code bloat from templates, exceptions, and other language features
Understand the issues related to using C++ in safety-critical and real-time systems
Debug a C++ program on a target device
Audience
Developers
Designers
Format of the course
Part lecture, part discussion, exercises and heavy hands-on practice
This instructor-led live training in Plovdiv (online or onsite) is tailored for engineers and scientists aiming to learn and apply DSP implementations to efficiently handle diverse signal types and gain better control over multi-channel electronic systems.
By the end of this training, participants will be able to:
Set up and configure the necessary software platform and tools for Digital Signal Processing.
Understand the core concepts and principles foundational to DSP and its applications.
Familiarize themselves with DSP components and employ them in electronics systems.
Generate algorithms and operational functions using results from DSP.
Utilize the basic features of DSP software platforms and design signal filters.
Synthesize DSP simulations and implement various types of filters for DSP.
This guided, live training session, available online or in-person, is designed for C developers looking to master the fundamental principles of embedded C design.
Upon completion of this course, participants will be equipped to:
Grasp the design considerations essential for creating reliable embedded C software
Articulate the specific functions of an embedded system
Establish the necessary program logic and structure to achieve intended outcomes
This intensive two-day program is designed with approximately 60% hands-on laboratory exercises. It delves into the internals and architecture of the Embedded Linux kernel, providing practical guidance on development and the process of writing and integrating various device drivers.
Who should attend?
The course is tailored for engineers who wish to explore Linux kernel development within the context of embedded systems and platforms.
Construct embedded Linux systems from scratch using industry-standard cross-development tools and practical projects. This two-day course explores Linux history, open-source development models, bootloaders, custom system construction, build systems, and application debugging. With 60% practical implementation time, participants configure bootloaders, compile toolchains, construct filesystems, and execute real-world embedded Linux development tasks.
This training program aims to present C++ as the natural evolution of C for object-oriented embedded system development. Since C++ is fully compatible with C, this course guides participants smoothly from C to C++ while exploring the underlying mechanisms of how C++ is executed. This insight is particularly valuable when applying C++ in resource-constrained embedded environments. With the C++ standard recently undergoing a significant revision known as C++11, and a subsequent update, C++14, approaching, this course covers key features introduced by these updates that are highly beneficial in embedded contexts, such as high-performance memory management, concurrency using multicore processors, and low-level hardware programming.
GOAL/BENEFITS
The primary objective of this course is to enable you to use C++ in a 'correct' and effective manner.
Introduce C++ as an object-oriented alternative within the embedded systems domain.
Highlight both the similarities and differences between C++ and C.
Understand various memory management techniques, with a specific focus on move semantics introduced in C++11.
Explore the underlying implementation to understand how different C++ paradigms translate into machine code.
Leverage templates to create type-safe, high-level abstractions for low-level hardware programming (including memory-mapped I/O and interrupts), particularly utilizing variadic templates introduced in C++11.
Present useful design patterns applicable to embedded systems.
Include practical exercises to reinforce learning.
AUDIENCE/PARTICIPANTS
This training is designed for C++ programmers who wish to begin using C++ in an embedded systems context.
PREVIOUS KNOWLEDGE
The course assumes basic proficiency in C++ programming, equivalent to our 'C++ – Level 1' and 'C++ Level 2 – Introducing C++11' trainings.
PRACTICAL EXERCISES
Throughout the training, you will practice the presented concepts through a series of exercises. The development will take place using the free and open-source integrated development environment provided by Eclipse.
This instructor-led, live training in Plovdiv (online or onsite) is aimed at engineers who wish to design high-performance embedded systems using FPGA.
By the end of this training, participants will be able to:
Install and configure the FPGA software tools needed to design and simulate an embedded system.
Select the best FPGA architecture for an application.
In this instructor-led live training in Plovdiv, participants will learn how to code using FreeRTOS by stepping through the development of a simple RTOS project on a microcontroller.
By the end of this training, participants will be able to:
Grasp the fundamental concepts of real-time operating systems.
Familiarize themselves with the FreeRTOS environment.
Acquire skills in coding with FreeRTOS.
Interface a FreeRTOS application with hardware peripherals.
This instructor-led, live training in Plovdiv (online or onsite) targets developers who wish to utilize C++ to apply object-oriented programming techniques and enhance software design.
By the end of this training, participants will be able to implement object-oriented concepts in C++, design modular applications, apply encapsulation and abstraction, and structure maintainable codebases.
This instructor-led, live training session (available online or on-site) is designed for embedded engineers and system administrators who wish to build, customize, and deploy OpenBMC firmware for server management.
This instructor-led live training (available online or onsite) targets hardware validation and system test engineers looking to implement, test, and troubleshoot IPMI and sensor management on OpenBMC platforms.
This instructor-led, live training (available online or onsite) is designed for security engineers and firmware developers who aim to harden OpenBMC deployments against unauthorized access and firmware tampering.
This instructor-led, live training (available online or onsite) is aimed at embedded Linux developers who wish to master the OpenBMC build system, customize layers, and create production-ready BMC firmware images.
The RISC-V ecosystem has evolved from a niche open-source instruction set architecture (ISA) into a mainstream architectural choice, gaining significant traction across edge computing, IoT, automotive, AI acceleration, and server-class processors. Industry reports highlight a pressing talent deficit: with fewer than 5,000 RISC-V chip designers globally and over 15,000 open positions in the semiconductor sector, there is a clear supply gap. Current hiring trends indicate that employers prioritize candidates proficient in RISC-V architecture, alongside skills in SoC design, RTL verification (UVM/SystemVerilog), AI accelerator development, Rust systems programming, confidential computing, and open-source toolchain management. The fastest-growing competency areas include automotive-grade RISC-V (ISO 26262 compliance), server-class processors (featuring AIA interrupt controllers and multi-core coherence), and edge AI inference NPUs. Companies such as SiFive, Qualcomm, and Western Digital are accelerating RISC-V development, intensifying the demand for engineers capable of bridging architecture specification, silicon implementation, firmware, and software stack development within a unified skill set.
This course offers a thorough introduction to the Zig programming language, exploring its syntax, memory management, application development, and advanced features. Participants will acquire practical experience with Zig’s distinctive approach to safety, performance, and interoperability, positioning it as a compelling alternative to C and Rust. The curriculum incorporates practical exercises designed to reinforce learning and build confidence in writing efficient, reliable Zig programs.
Read more...
Last Updated:
Testimonials (7)
Detailed explanation, re-iteration of points in a quite subtle way that really drove the knowledge home very well. Rod's willingness to double-check the odd obscure question that we rasied, to be sure that his answers were 100% right. Also, his interest in discussing the pros & cons of alternate coding styles so that we learnt not only how to use C++ in our intended way, but why it should be done that way.
Nick Dillon - cellxica Ltd
Course - Using C++ in Embedded Systems - Applying C++11/C++14
Being able to ask for advanced subjects even if there were not planned initially.
Gabriel Chouinard - Spark Microsystems
Course - FreeRTOS: Programming for Real Time Operating Systems
I understood the process of the operating system and how do we link all factors together information of network as well so now I have an obvious and full picture about what is going on these computers how they communicate with each others ultimately gained knowledge about the most important operating system which is Linux and how do we implement our own embedded Linux
Rawda Alnaqbi - beamtrail
Course - Introduction to Embedded Linux (Hands-on training)
The knowledge of the trainer. He was able to answer all of my questions, even questions about our platform. He also continued to help until we all understood the material.
James O'Donnell - Tennant Company
Course - Embedded Linux Kernel and Driver Development
The trainer really adapted the training to our level and took a lot of time and efforts to make sure the presentation was well adapted.
Nicolas Guerette-Berthiaume - Trilliant
Course - C++ for Embedded Systems
Just getting off the ground and doing some basic things was super useful
Online Embedded Systems training in Plovdiv, Embedded Systems training courses in Plovdiv, Weekend Embedded Systems courses in Plovdiv, Evening Embedded Systems training in Plovdiv, Embedded Systems instructor-led in Plovdiv, Embedded Systems boot camp in Plovdiv, Embedded Systems trainer in Plovdiv, Embedded Systems classes in Plovdiv, Embedded Systems instructor in Plovdiv, Embedded Systems coaching in Plovdiv, Embedded Systems on-site in Plovdiv, Embedded Systems one on one training in Plovdiv, Evening Embedded Systems courses in Plovdiv, Online Embedded Systems training in Plovdiv, Weekend Embedded Systems training in Plovdiv, Embedded Systems private courses in Plovdiv, Embedded Systems instructor-led in Plovdiv