Model Based Development (MBD) is a software development methodology that enables faster, more cost-effective development of dynamic systems such as control systems, signal processing and communication systems. It relies on graphic modeling rather than the traditional text based programming.
In this instructor-led, live training participants will learn how to apply MBD methodologies to reduce development costs and accelerate the time to market of their embedded software products.
By the end of this training, participants will be able to
Select and utilize the right tools for implementing MBD.
Use MBD to carry out rapid development in the early stages of their embedded software project.
Shorten the release of their embedded software into the market.
Audience
Embedded systems engineers
Developers and programmers
Format of the course
Part lecture, part discussion, exercises and heavy hands-on practice
Introduction to Model Based Development
Overview of the "system model"
Mathematical modeling approaches
Establishing the requirements
Defining the system
Designing the model
Preparing your MBD toolkit
Verifying and validating the model
Simulation tools and practices: Simulink and StateFlow
Engineering safety-critical embedded software
Tools and approaches for testing your application
Detecting and mitigating failures
Reusing test suites
Refining algorithms through multi-domain simulation
Serial code generation
Tools and practices: TargetLink
SCM tools for managing MBD
Using a common design environment across teams
Deploying across multiple processors and hardware types
Conclusion

This is a two day course covering all basic principles of building Embedded linux Systems, around 60% of the entire course time is practical hands-on implementation for real world application using the same standards and tools used in industry
Brief history of linux
Open source development overview
Introduction to embedded linux
Cross development | Boot Loaders
Building custom embedded linux system for a typical hardware target (SAM9M10-G45-EK)
Embedded Linux Tools
Introduction to Build Systems
Embedded Linux application development and debugging

Arduino is an open-source, single-board, microcontroller for building devices that can sense and control objects in the physical world.
In this instructor-led, live training, participants will learn how to program the Arduino for real-world usage, such as to control lights, motors and motion detection sensors.
By the end of this training, participants will be able to:
Program Arduino to control lights, motors, and other devices.
Understand Arduino's architecture, including inputs and connectors for add-on devices.
Add third-party components such as LCD displays, accelerometers, gyroscopes, and GPS trackers to extend Arduino's functionality.
Understand the various options in programming languages, from C to drag-and-drop languages.
Test, debug, and deploy the Arduino to solve real world problems.
Audience
Beginner developers
Hardware/software technicians
Technical persons in all industries
Hobbyists
Format of the course
Part lecture, part discussion, exercises and heavy hands-on practice
Note
Arduino is available in different models and supports different programming interfaces (C, C++, C#, Python) and IDEs (Arduino IDE, Visual Studio, etc.). This course assumes the Arduino Uno board, Arduino IDE and the Arduino language (based on C/C++). To request a different setup, please contact us to arrange.
Participants are responsible for purchasing the Arduino hardware and components.
Introduction
Microcontroller vs Microprocessor
Arduino vs Rasberry Pi
Overview of Embedded Systems
Selecting the Right Arduino Board for Your Project
The Mindset for Learning Arduino
Fundamentals of Arduino Electronics
Understanding a Circuit Diagram
Connecting Everything Together
Software and Hardware Tools for Arduino
Exploring the Arduino IDE
Programming the Arduino
Writing Your First Program: A Blinking Light ("Hello World" of Electronics)
Programming Fundamentals: Loops, conditionals, variables, functions, and parameters
Overview of Input/Output (I/O) Interfaces
Configuring the Input Sensors
LEDs, Switches, Buzzers, and Display Devices
Configuring the Output Devices (LEDs and electro-mechanic robotics)
Programming Sensor-to-Output Device Control
Project: Automatic Light Adjustment System
Analog to Digital Conversion (ADC)
Serial Communication and UART Programming
Sensor sticks, motors and audio devices
Project: TBD
Testing and Debugging
Extending Arduino's Capabilities
Joining the Arduino Community
Troubleshooting
Closing remarks

Is C++ suitable for embedded systems such as microcontrollers and real-time-operating-systems?
Should object-oriented-programming be used in microcontrollers?
Is C++ too far removed from the hardware to be efficient?
This instructor-led, live training addresses these questions and demonstrates through discussion and practice how C++ can be used 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
Introduction
Overview of embedded systems
Overview of C++
Preparing the toolchain
Classes and objects
Inheritance
Virtual functions
Using templates
Error handling
Inline code
Startup
Standard libraries
Memory management
Real-time operating systems
Interoperability between C and C++
Object-oriented modeling and UML
Conclusion

Raspberry Pi is a very small, single-board computer.
In this instructor-led, live training, participants will learn how to set up and program the Raspberry Pi to serve as an interactive and powerful embedded system.
By the end of this training, participants will be able to:
Set up an IDE (integrated development environment) for maximum development productivity
Program Raspberry Pi to control devices such as motion sensor, alarms, web servers and printers.
Understand Raspberry Pi's architecture, including inputs and connectors for add-on devices.
Understand the various options in programming languages and operating systems
Test, debug, and deploy the Raspberry Pi to solve real world problems
Audience
Developers
Hardware/software technicians
Technical persons in all industries
Hobbyists
Format of the course
Part lecture, part discussion, exercises and heavy hands-on practice
Note
Raspberry Pi supports various operating systems and programming languages. This course will use Linux-based Raspbian as the operating system and Python as the programming language. To request a specific setup, please contact us to arrange.
Participants are responsible for purchasing the Raspberry Pi hardware and components.
Introduction
Fundamentals of Raspberry Pi Electronics
Connecting Everything Together
Software and Hardware Tools for Raspberry Pi
Writing Your First Program: A Blinking Light ("Hello World" of Electronics)
Python Fundamentals: Loops, conditionals, variables, functions, and parameters
Overview of General Purpose Input/Output (GPI/O) Interfaces
Configuring the Input Sensors
Configuring the Output Devices (Speakers, LEDs and electro-mechanic robotics)
Programming Sensor-to-Output Device Control
Project: Build a Motion Sensor and Alarm
Installing additional software
Project: Build a Media Controller with Kodi
Testing and Debugging
Joining the Raspberry Pi Community
Troubleshooting
Closing remarks