About us

EmbeTronicX is an independent online publication that covers Embedded programming tutorials, projects, and more. The prime goal of EmbeTronicX is to provide high-quality technical education and which will be readily available for students and working professionals for free of cost. Here, we provide a tailor-made approach to make you understand complex concepts in a better and simple manner. We have provided the tutorial repositories below.

STM32 Tutorials

Creating a New Project for STM32
STM32 GPIO Tutorial
Reset Sequence in Cortex-M4
Getting started with STM32 RTOS
STM32 RTOS – GPIO Tutorial (CMSIS V2)
VIC and NVIC in ARM

Bootloader Tutorials

Bootloader Basics - Bootloader Part 1
Bootloader Design – Bootloader Part 2
Simple STM32 Bootloader – Bootloader Part 3
Flashing Application using Bootloader - Bootloader Part 4
Bootloader Two slots and CRC32 - Bootloader Part 5
STM32 Firmware Update Over the Air (FOTA) – Bootloader Part 6

Raspberry PI Pico Tutorials

LPC2148 Tutorials

LPC2148 ARM7 Introduction

LPC2148 Introduction
Keil IDE Setting Up
LPC2148 - PLL Tutorial
LPC2148 - GPIO Tutorial
LPC2148 -
Timer/Counter Tutorial
LPC2148 - UART Tutorial
LPC2148 - ADC Tutorial
Vectored Interrupt Controller (VIC and NVIC)
LCD Interfacing 8 bit Mode
LCD Custom Character Display
LCD Interfacing 4 bit Mode
DC Motor Interfacing
Relay Interfacing
Keypad Interfacing
GSM SIM900A Interfacing
RFID Reader Interfacing
Ultrasonic Sensor Interfacing
GPS Interfacing
PIR Sensor Interfacing
RF Module Interfacing
IR Sensor Interfacing
Bluetooth Interfacing (BT)
LDR Sensor Interfacing
Sound Sensor Interfacing
Touch Sensor Interfacing
Flame Sensor Interfacing
Rain Sensor Interfacing
LPG Gas Sensor Interfacing

PIC16F877A Tutorials

PIC16F877A Introduction
PIC16F877A - GPIO Tutorial
PIC16F877A - Timer Tutorial
PIC16F877A - USART Tutorial
PIC16F877A - ADC Tutorial
PIC16F877A - I2C Tutorial
PIC16F877A - Interrupts Tutorial
PIC16F877A - Multiple External and PORTB Interrupts
LCD Interfacing 8 Bit Mode
LCD Interfacing 4 Bit Mode
DC Motor Interfacing
Relay Interfacing
Keypad Interfacing
GSM SIM900A Interfacing
RFID Reader Interfacing
RTC (DS1307) Interfacing
GPS Interfacing
PIR Sensor Interfacing
IR Sensor Interfacing
Bluetooth Interfacing (BT)
LDR Sensor Interfacing
Sound Sensor Interfacing
Touch Sensor Interfacing
Flame Sensor Interfacing
Rain Sensor Interfacing
LPG Gas Sensor Interfacing

Unit Testing Tutorials

unit testing in embedded c

Unit Testing 1 - Introduction
Unit Testing 2 - Code Coverage
Unit Testing 3 -Install Ceedling
Unit Testing 4 – Testing with Unity
Unit Testing 5 - Mock using CMock

FreeRTOS Tutorials

FreeRTOS Porting for LPC2148 Using Keil

RTOS Introduction - Part 1
RTOS Introduction - Part 2
FreeRTOS Porting on LPC2148
FreeRTOS - Task Creation
FreeRTOS - Task Creation with Parameters
FreeRTOS - Binary Semaphore
FreeRTOS - Binary Semaphore in ISR
FreeRTOS - Counting Semaphore
FreeRTOS - Mutex Tutorial
FreeRTOS - Queue Tutorial
FreeRTOS - LED & LCD Task

NuttX RTOS Tutorials

Setup NuttX RTOS with ESP32
Blink LED on ESP32 using NuttX RTOS
ESP32 LED Blinky Example using NuttX (own app and driver)
ESP32 GPIO Interrupt example
NuttX RTOS I2C Example (ESP32 – ADXL345)
ADXL345 Single and Double Tap Detection
NuttX RTOS SPI Tutorial using ESP32

RTX RTOS Tutorials

RTX RTOS Porting for LPC2148 in Keil
RTX Real-Time Kernel
LPC2148 - RTX RTOS Porting
Keil Setup for STM32 CMSIS RTOS
RTX RTOS – STM32 GPIO Tutorial (CMSIS V2)

8051 Tutorials

8051 Introduction
Keil Installation
Project Creation in Keil
8051 - GPIO Tutorial
8051 - Timer/Counter Tutorial
8051 - UART Tutorial
8051 - Interrupt Tutorial
LCD Interfacing - 8 bit Mode
LCD Custom Character
LCD Interfacing- 4 bit Mode
DC Motor Interfacing
Relay Interfacing
Keypad Interfacing
ADC0804 Interfacing
ADC0808 Interfacing
Ultrasonic Sensor Interfacing
GSM SIM900A Interfacing
RFID Reader Interfacing
EEPROM Interfacing (I2C)
RTC (DS1307) Interfacing
PIR Sensor Interfacing
IR Sensor Interfacing
GPS Interfacing
Bluetooth Interfacing (BT)
Sound Sensor Interfacing
Touch Sensor Interfacing
Flame Sensor Interfacing
Rain Sensor Interfacing
LPG Gas Sensor Interfacing
NRF24L01 interfacing (SPI)– Wireless Xbee

ESP32 IDF Tutorials

ESP32-IDF getting started

ESP32 Introduction & Initial Process Flow
ESP32-IDF Getting Started
ESP32-IDF UART Tutorial

Raspberry PI Tutorials

GPIO Linux Device Driver Basic using Raspberry PI
GPIO Linux Device Driver using Raspberry PI
I2C Linux Device Driver using Raspberry PI
Dummy I2C Bus Linux Device Driver using Raspberrry Pi
Real I2C Bus Linux Device Driver
I2C Bus Linux Device Driver using I2C-GPIO
SSD1306 Linux Device Driver
Softirq in Linux Device Driver
Threaded IRQ in Linux Device Driver
SPI Device Driver - Raspberry PI

 

Embedded Interview Topics

Interview Topics

Linux Device Driver Tutorials

Linux device driver

Device Driver 1 - Introduction
Device Driver 2 - First Driver
Device Driver 3 - Passing Arguments
Device Driver 4 - Major & Minor Number
Device Driver 5 - Creating Device File
Device Driver 6 - File Operations
Device Driver 7 - Real Device Driver
Device Driver 8 - IOCTL Tutorial
Device Driver 9 - Procfs Tutorial
Device Driver 10 - Waitqueue Tutorial
Device Driver 11 - SysFS Tutorial
Device Driver 12 - Interrupts Tutorial
Device Driver 13 - Interrupt Programming
Device Driver 14 - Workqueue (Static Method)
Device Driver 15 - Workqueue (Dynamic Method)
Device Driver 16 - Own Workqueue
Device Driver 17 - Linked List 1
Device Driver 18 - Linked List 2
Device Driver 19 - Kernel Thread
Device Driver 20 - Tasklet (Static Method)
Device Driver 21 - Tasklet (Dynamic Method)
Device Driver 22 - Mutex Tutorial
Device Driver 23 - Spinlock Tutorial 1
Device Driver 24 - Spinlock Part 2 (Read/Write Spinlock)
Device Driver 25 - Sending Signals
Device Driver 26 - Kernel Timer Tutorial
Device Driver 27 -High Resolution Timer Tutorial
Device Driver 28 - Completion Tutorial
Device Driver 29 - EXPORT_SYMBOL
Device Driver 30 - Atomic Variables Tutorial
Device Driver 31 – Seqlock
Device Driver 32 – Misc Device Driver
Device Driver 33 – USB Device Driver Basics
Linux Device Driver 34 – USB Device Driver Example Program
Device Driver 35 – GPIO Driver Basic
Device Driver 36 – GPIO Interrupt
Device Driver 37 – I2C Linux Device Driver
Device Driver 38 – Dummy I2C Bus Driver
Linux Device Driver Part 39 – Real I2C Bus Driver
Device Driver 40 – I2C Bus Driver using I2C-GPIO
Device Driver 41 – SSD1306 I2C Linux Device Driver
Device Driver 42 - Poll Linux Example
Device Driver 43 - Select Linux Example
Device Driver 44 – E-Poll Linux Example
Device Driver 45 – Softirq Linux Example
Device Driver 46 – Threaded IRQ in Linux
Device Driver 47 - SPI Protocol Driver

C Programming Tutorials

Compilation Steps of C Program
Memory Layout of C Program
Enum Tutorial
Macro VS Inline
Pointers - Part 1
Pointers - Part 2
Types Of Pointers in C
Qualifiers Tutorial
Storage Class Tutorial
Typecasting Tutorial
Typedef Tutorial
Bitwise Operator Tutorial
Stringizing Operator (#)
Token Pasting Operators (##)
Little and Big Endian
Understanding of container_of macro
Flexible Array Member in C (FAM)

8051 Projects

8051 Pin Diagram
Gas Leakage Detection System
Hump And Pothole Detection on Roads
RTC Interfacing (Alarm Clock)
Accident Detection And Alerting System Using GSM

LPC2148 Projects

Password Based Door Open System

Other Tutorials

Serial Communication Introduction
Interrupt Tutorial
I2C Basics - Part 1
I2C Basics - Part 2
SPI – Serial Peripheral Interface Protocol
Matrix Keypad Introduction
Relay Driver (ULN2803) Working
Motor Driver (L293D) Working
Ultrasonic Sensor (HC-SR04) Introduction
How Does RFID Works?
GSM SIM900A Introduction
BLE Introduction - Part 1
BLE Introduction - Part 2