Embedded Diploma

Responsive Kinetics
November 28, 2016
CAD Diploma
January 28, 2017


February 9, 2017 6:00 pm - 9:00 pm

Fab Lab Egypt

Villa 35 - 100 st. - behind Almaadi Hotel - Almaadi, Cairo, Egypt

0120 371 9036

Organized By

Fab Lab Egypt

In the last 5 years, everything became embedded! Yup. After smart fabrics that can monitor body temperature, and shoes that can send signs and track runners during marathons, IOT devices monitoring the weather, and ending up with many and many smart gadgets everywhere in our life.
We are introducing the embedded systems track, covering the fundamental concepts of embedded engineering, sensors and module interfacing, micro-controllers and microprocessors programming, and embedded platforms fabrication. We are teaching you concepts not just a tool; as teaching English writing to teaching how to use Microsoft Word. Concepts are universal. After this track you’ll be able to develop embedded applications on different platforms.

** You’ll go through 7 Modules:

Module 1: Embedded Shell


Target In this session, we will take one further step into the world of embedded systems, especially micro-controllers. Starting from this session you’ll practically try everything. Using Arduino boards, you’ll learn how to use micro-controllers, inputs and outputs, and how to program your application.



  • To be able to understand the fundamentals of embedded systems.
  • Learn digital and analog control and the difference between them.
  • Learn how to interfacing computers with micro-controllers.
  • Learn how to control motors with different kinds automatic.
  • Learn how to interface the real-world applications with micro-controllers.



  • Arduino Games.
  • Small Home Automation.
  • Radar

Duration 3 Sessions, 3 hours per session.

Day 1

Day 2

Day 3

How Arduino work?

˜ Structuring Arduino Sketch

˜ Variables and data types.

˜ Looping Mechanisms.

˜ Branching Statements.

˜ Logic and math operations

˜ Digital Inputs

˜ Digital outputs.

˜ Paulse width Modulation

˜ Analog Inputs

˜ Analog Outputs

˜ Mapping functions.

˜ Debugging

˜ troubleshooting

˜Sensors Inputs.

˜ Movement sensor PIR

˜ Light Sensor LDR

˜ Temperature sensor

˜ Distance ultrasonic

˜ Interrupts

˜ Visual Outputs (LCD)

˜ Motor drivers

˜  DC Motors

˜  Servos motors

˜ Audio Outputs

Serial Interfacing with PC.

˜ Bluetooth Interfacing.

˜ Sending and Receiving Data.

˜ Project Arduino Games.

˜ Project Radar

˜ Summary

˜ What’s next?


Module 2: into microcontrollers:


Target Up to this point, you should have had a clear understanding of what’s Arduino and what’s microcontrollers. In this session, we will go deep inside the microcontrollers, learning about MCU structure, timers, memory, and how to build a stand-alone system



  • understand the fundamentals of computer architecture
  • learn what is the most popular microcontrollers and how to choose one?
  • Learn how to use Atmel AVR microcontrollers
  • Learn how to read datasheet and understand low level architecture.




  • Digital watch with Alarm



Duration 3 Sessions, 3 hours per session.

Day 1

Day 2

Day 3

˜ Microprocessor

˜ CPU – ALU – CU

˜ Registers

˜ Instruction set

˜ Instruction cycle

˜ Internal busses

˜ CPU architecture

˜ Von Neumann vs Harvard



˜ MCU Families, vendors

˜ How to choose a MCU

˜ Stand-alone Systems

˜ Software Build

˜ IDE and compiler.

˜ Installing Atmel and protues

˜ Atmega116 pinout

˜ datasheet

˜ Example: blink LED

˜ Uploading code process

˜ Logic and bitwise operations

˜ Example: digital input, output

˜ Interrupts

˜ Interrupts vs polling

˜ Timers

˜ Timers CTC Mode

˜ Watchdog timer

˜ Programming Examples.


Module 3: Embedded C


Target Up to this point, you should have had a clear understanding how to control atmega basic inputs and outputs, timers, interrupts, watchdog timer, now let’s go professional and learn Embedded C and how to code microcontroller in the best way, with the best tweaks and work experience.



  • Learn how to code microcontrollers in a professional way.
  • Learn Most used programming techniques for microcontrollers.
  • Learn how to write optimum code to save memory and increase performance.



  • Implement External Interrupts Library
  • Implement timer library


Duration 3 Sessions, 3 hours per session.

Day 1

Day 2 Day 3
˜ Embedded System Programming

˜ Embedded programming goals

˜ programming using embedded C

˜ Example Blink LED

˜ Macros

˜ header files

˜ conditional compilation

˜ typedefs

˜ Difference between C and embedded C

˜ Pointers

˜ Example: pointers

˜ Example: pointers with functions

˜ Call by value vs call by reference

˜ Memory segments

˜ Lifetime and Scope

˜ Local vs Global variables

˜ Static variables

˜ Volatile variables

˜ Modular Programming

˜ Example modular programming

˜ Make your own libraries

˜ Task: modular programming

˜ writing libraries

˜ What’s your style


Module 4: interfacing I


Target Up to this point, you have the ability to code microcontrollers and understand datasheet, now let’s learn how to get a module and exploring its datasheet then transform this information into code and libraries to use it for your system, let’s interface with liquid crystal display, keypad



  • Understand the meaning of embedded systems interfacing
  • Learn how to read datasheet of electronic components.
  • Learn how to interface LCD with any microcontroller (Write LCD Library)
  • Learn how to interface Keypads with any microcontroller (Write Keypad Library)




  • Make your own hardware and software calculator!


Duration 3 Sessions, 3 hours per session.

Day 1 Day 2 Day 3
˜ Embedded System interfacing

˜ Computer interfacing examples

˜ Computer standard buses

˜ Liquid crystal displays

˜ Importance of LCD’s

˜ LCD datasheet and pinout

˜ LCD control registers and addresses

LCD into code

˜ LCD writing library

˜ LCD Hello world

˜ Keypad

˜ Understanding buttons

˜ Understanding pullup resistors

˜ Evolution of keypads

˜ Keypad how it works!

˜ Keypad writing library

˜ Example: keypad and LCD


Module 5: interfacing II


Target Up to this point, you have understood what is the meaning of interfacing, and how to get a module and learn how to use if from the datasheet then writing libraries for microcontrollers, let’s dig more into Pulse width modulation and analog to digital converters, for sensors analyzing, also let’s interface with internal ROM.



  • Learn what is pulse width modulation and how to control it.
  • Control motors using microcontrollers.
  • Learn what is analog to digital converter and how it works.
  • Reading sensors input using LCD with microcontrollers.
  • Learn how to interface with internal EEPROM of microcontroller to save permeant data.



  • Make our own hardware and software temperature sensor.
  • Make your own fan.
  • Integrate the pervious.


Duration 3 Sessions, 3 hours per session.

Day 1

Day 2 Day 3

˜ PWM working principle

˜ PWM datasheet

˜ Fast PWM mode

˜ PWM configurations

˜ PWM writing Library

PWM control motors!

˜ Analog to digital converter

˜ Working principle

˜ ADC Datasheet register

˜ ADC Writing Library

˜ Example sensor input

˜ Example displaying sensor input

˜ Internal memory

˜ Atmega16 EEPROM

˜ EEPROM control Registers

˜ EEPROM Library

˜ Do it your own!

˜ EEPROM and LCD interface


Module 6: interfacing III


Target Up to this point, you have understood how to get a module and deal with, now some module follows a specific transmission protocol to give data, in this session you will learn the most common data transfer protocols UART, SPI, I2C, understanding this protocols and configure it and deal with sensors that require those protocols.



  • Learn the essence of communication protocols and data transmissions.
  • Learn what is UART and how to use it with microcontrollers (Write UART Library)
  • Learn what is SPI and how to use it with microcontrollers (Write SPI Library)
  • Learn what is I2C and how to use it with microcontrollers (Write I2C Library)




  • Security locker password check


Duration 3 Sessions, 3 hours per session

Day 1

Day 2 Day 3
˜ Data transmission

˜ Communication basics

˜ Synchronous vs asynchronous

˜ Parity bits

˜ Understanding UART

˜ UART in datasheet

˜ UART writing Library

˜ Understanding SPI

˜ SPI Working Principle

˜ Interfacing with SPI

˜ Writing Library

˜ SPI Example


˜ Understanding I2C

˜ I2C Working Principle

˜ Interfacing with I2C

˜ Writing Library

˜ I2C Example

˜ Wrapping up



Module 7: Final Project


Target Now it’s time to check your skill weaponry and put it into test. In this module, you will learn how to integrate between all the different tools and skills. You – individually and in-groups will have a set of tasks to test your skills and to get certified.



  • Learn how to integrate all what you have learned into a complete project
  • Learn how to work in a group of a software programmers (version control)
  • Learn how can you improve yourself for the next stage.



  • Full security system both hardware and software created from scratch.


Duration 3 Sessions, 3 hours per session

Day 1 Day 2 Day 3
˜ Wrapping Up.

˜ Troubleshooting.

˜ Q & A

˜ Explaining the tasks.

˜ Individual Tasks

˜ Dividing into groups.

˜ Group project declaration.

˜ Hands-on Activity.

˜ Hands-on Activity. ˜Finalizing the projects.

˜Judging and certification

˜What’s next?


Comments are closed.