Hands on projects with the I2C protocol - Learn by doing! (Udemy.com)
Gain a deep understanding of the I2C and GPIO peripherals with hands on embedded systems projects using STM32
Created by: Akshay Gill
Last updated October 2019
What you will learn
- Be able to set up I2C communication between microcontrollers and thousands of I2C devices available in the market
- Understand how OLED displays work and know how to display content on them
- Gain a deep understanding of how to set up I2C communication between a STM32 Nucleo microcontroller and a Linear Technologies LTC2990 Current, Voltage and Temperature sensor
- Understand how to enable GPIO input to read input into the microcontroller from push buttons
- Understand Hardware Abstraction Layer (HAL) Libraries and how to use them
- Feel confident and comfortable programming applications on the Cortex-M platform
- Read datasheets for I2C slave devices to figure out how to make them work with a microcontroller master
How it compares
Against the other 295 rated Udemy courses in Arduino on CourseDuck:
- Rating4.5 out of 5higher than 65% of them
- Reviews206#127 of 296 by number of reviews
- Length4.1 hoursshorter than 59% of them
- Last updatedOctober 2019earlier than 85% of them
Course Description
Welcome to this course on embedded systems for STM32: I2C protocol masterclass. The I2C communication protocol is a popular protocol that microcontrollers use to talk to various devices such as EEPROMS and NVRAMs, ADCs and DACs, I/O interfaces for port expansion, and a whole array of different types of sensors. This class goes in-depth into the theory behind the I2C protocol, why it was originally designed, what types of common formats are available, and how to implement I2C communication between a STM32 microcontroller, a LTC2990 current, voltage and temperature sensor and an OLED display.
Who am I?
I’m Akshay, and I’ll be your instructor for this course. I have been fascinated with micro controllers since I was a child, and now I consider it lucky to have it as my profession. I currently write firmware for safety critical systems that go inside electric cars. With my knowledge of embedded systems over the past 10+ years, and working in Silicon Valley, I have gained a unique insight into what the industry needs and what the students are lacking.
Course Structure
The course is divided into four sections -
Section 1 - In this section you will learn the theory behind the I2C protocol and how to implement it effectively.
Section 2 - In this section you will set up a free and open source development environment to program and debug ARM Cortex microcontrollers. If you have previously completed my course on the Foundations of ARM Cortex-M processors, then you may choose to skip to the next section.
Section 3 - In this section you will get hands-on experience on how to write the I2C drivers for the LTC2990 temperature, current and voltage sensor and the SSD1306 OLED display. You can take the knowledge learned in this section and apply it to any other I2C device of your choosing.
Section 4 - In this section you will unlock features of the I2C Shield with specially designed assignments. After each assignment I will show you my method of implementation for comparison.
What hardware is needed for this course?
This course is created around the Nucleo series of boards from ST Microelectronics and I have designed, specifically for this course a custom board that fits on top of the Nucleo board. The Nucleo board is available for purchase directly from ST Micro and the custom I2C board can be purchased on www(dot)makermax(dot)ca to allow you to get hands-on without having a whole electronics lab at your desk. Although this hardware is recommended, it is not mandatory. If you choose not to buy the hardware, you will still be able to follow along through all the lectures as I will show you my implementation. The best way to learn however, is to try and implement it yourself. If you have further questions on the hardware or anything else, send me a message! I would be more than happy to help you.
Instructor Details
- 4.5 Rating
206 Reviews
Akshay Gill
Akshay has always had a practical approach to teaching. His courses are designed based on that approach and have made on impact on students across the globe. His focus areas are Electric Vehicle battery technology and stock market investing. Don't miss this chance to learn from him and transform your career in these spaces.
More courses by Akshay Gill
Foundation of Embedded Systems with ARM Cortex and STM32 (2021)
4.4 (1,249 Reviews)
Provider: Udemy
Time: 7.7h
$11.99
Hands-on Embedded Systems with Atmel SAM4s ARM Processor (2019)
4.3 (136 Reviews)
Provider: Udemy
Time: 2.2h
$49.99
More Arduino courses
Learn to Build a Computer (PC) in 2026 - all types!
4.9 (245 Reviews)
Provider: Udemy
Time: 6.1h
$74.99
Raspberry Pi For Beginners - 2026 Complete Course
4.8 (3,105 Reviews)
Provider: Udemy
Time: 10.6h
$89.99
Ultimate Guide to Raspberry Pi : Tips, Tricks and Hacks (2023)
4.8 (2,363 Reviews)
Provider: Udemy
Time: 5.2h
$69.99
Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL (MCU3) (2026)
4.8 (487 Reviews)
Provider: Udemy
Time: 8.1h
$79.99
Arduino Step by Step: Getting Started (2024)
4.7 (8,714 Reviews)
Provider: Udemy
Time: 21.4h
$159.99
Reviews
By Ervis Uruci on 3/20/2024
Il corso è fatto bene per quanto riguarda la spiegazione teorica e pratica del I2C, non mi aspettavo la necessita di utilizzare e configurare un virtual box per svolgere tutti i tasks del corso. Mi aspettavo di svolgere tutto il corso su un ambiente OS: Windows. Comunque rimanendo in tema di I2C il corso mi è piaciuto.
By Charles McCain on 2/21/2021
A very enjoyable course using the MakerMax Board and learning to configure it for I2C. This is one of the few places to get practical hands-on experience developing driver routines for an I2C peripheral.
By Apostolis Stavrakoudis on 8/2/2019
Yes, it was what I expected. Although one needs 3 wires for I2C implementation. GND is also needed no matter what. Lines are 2.
By Joren Chong on 6/3/2019
pretty good, easy entry and easy for me to absorb
By Nghia Ho on 3/6/2019
IT describes too much details of hardware. for software, the course only talks about using API to implement I2C features; which most people are not interested. They are interested into how to write I2C driver from scratch.
By James Calambro on 7/18/2018
Yes, I like this course. It helps me understand the concept of I2C and its application.
By Jean Dega on 3/31/2018
I'm a beginner in this and the course helped me understand I2C protocol and gain some hands -on experience with MCU. This course is extremely clear and easy to follow. Thank you for the effort. Keep on with the great work.
By Tan Chiew Kien on 3/26/2018
The instructor explain very clear and knowledgable. Now I understand why my China engineers struggle getting the I2C working :) Thank you Akshay Gill.
By Stefan Fischer on 3/7/2018
A comprehensive explanation of the I2C protocol, and how to start programming peripherals with stm32 micros.
By Lasal Gayanapriya Maldeniya on 1/30/2018
excellent explanations easy to understand
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100








