Muhammad
13+ years of professional experience in web, IoT (Internet of Things), and network applications Development using PHP/MySQL, WordPress, ASP.NET, C++, Node.js, Arduino, Raspberry Pi, and NodeMCU. Muhammad is also a book author and has published the book on Arduino IoT Cloud with Packt Publisher. He is also the official trainer of the EC-Council for the code-red project, where he is providing courses regarding IoT.
Tutorials by Muhammad

Introduction to Embedded Systems Security
Embedded systems security is one of the fastest-growing disciplines in both IoT and industrial engineering, yet it remains poorly understood by many of the engineers who build these devices. This article covers what embedded systems are, why they are uniquely difficult to secure, where real attacks have caused measurable damage and what threat categories you […]

Arduino vs ESP32: Complete Comparison Guide for IoT Projects in 2026
Introduction Choosing the right microcontroller for your IoT project can make or break your development experience. Two of the most popular options in the maker and professional communities are Arduino and ESP32 boards. While Arduino has been the go-to platform for beginners since 2005, the ESP32 has emerged as a powerful alternative with built-in WiFi […]

Getting Started with ESP32 DOIT DevKit v1 – Complete Beginner’s Guide
Introduction The ESP32 DOIT DevKit v1 is one of the most popular development boards for IoT and embedded systems projects. It’s a powerful microcontroller that comes with Wi-Fi and Bluetooth built-in, making it perfect for smart devices, automation, and sensor-based applications. In this tutorial, we’ll set up the ESP32 for programming using the Arduino IDE, […]

Getting Started with ESP8266: A Beginner’s Guide
Introduction The ESP8266 is one of the most popular Wi-Fi microcontrollers used in IoT (Internet of Things) and embedded systems. It’s low-cost, powerful, and easy to program, making it perfect for beginners who want to build smart devices such as Wi-Fi switches, temperature monitors, and home automation systems. In this tutorial, you’ll learn what ESP8266 […]

Embedded System Attack Surfaces
Every interface, protocol and memory region in an embedded system is a potential entry point for an attacker. Understanding the embedded system attack surface starts with understanding the architecture itself: how hardware layers, firmware, memory types, debug interfaces and communication protocols connect and where each one introduces exploitable exposure. This article works through all of […]

ESP32 vs ESP8266: Complete Comparison Guide for IoT Projects in 2026
Introduction When it comes to WiFi-enabled microcontrollers for IoT projects, two names dominate the conversation: ESP32 and ESP8266. Both developed by Espressif Systems, these powerful yet affordable boards have revolutionized DIY electronics and professional IoT development. But which one should you choose for your next project? The ESP8266 started the WiFi microcontroller revolution in 2014, […]

LED Blinking with ESP32 DOIT DevKit v1 – Step-by-Step Tutorial
Introduction The LED blink program is often called the “Hello World” of embedded systems. It’s the simplest way to test if your ESP32 is working properly and if you can control an output device. In this tutorial, we will blink an external LED connected to GPIO 12 of the ESP32 DOIT DevKit v1. This will […]

LED Blinking with ESP8266: Step-by-Step Tutorial for Beginners
Introduction The Blink LED program is the first step for anyone learning micro controllers. With the ESP8266 Wi-Fi micro controller, it’s even more exciting because you can later control LEDs through Wi-Fi and IoT platforms. In this tutorial, we’ll blink an external LED using ESP8266 and Arduino IDE as in the previous tutorial we explained […]

Common Embedded System Vulnerabilities and Threats
The most common embedded system vulnerabilities are not exotic zero-days. They are repeating patterns: buffer overflows from unsafe C functions, credentials compiled directly into firmware, debug ports left open on shipped hardware, third-party libraries nobody maintains any more. This article works through every major vulnerability category in the embedded threat landscape, from firmware-level coding flaws […]

ESP32-E22: The Game-Changing Wi-Fi 6E Development Board You Need to Know About
The ESP32 family just got a massive upgrade. Espressif Systems has unveiled the ESP32-E22, marking a revolutionary leap in IoT connectivity with tri-band Wi-Fi 6E support, dual-mode Bluetooth 5.4, and blazing-fast data rates up to 2.4 Gbps. If you’ve been working with older ESP32 boards, this new powerhouse changes everything. What is the ESP32-E22? The […]

RGB LED with ESP32 DOIT DevKit v1 – Step-by-Step Tutorial
Introduction An RGB LED is a special LED that can emit Red, Green, and Blue light. By combining these three colors in different intensities, we can create almost any color. There are two types of RGB LEDs: In this tutorial, we’ll control a Common Anode RGB LED using the ESP32 DOIT DevKit v1. Components Required […]

LDR with ESP8266: Measure Light Intensity Step by Step
Introduction The LDR (Light Dependent Resistor) is a simple but powerful sensor that detects light intensity. Its resistance decreases when light falls on it, and increases in darkness. By connecting an LDR with an ESP8266 Wi-Fi microcontroller, you can build smart IoT projects like: In this tutorial, you’ll learn how to connect an LDR with […]

Secure Software Development for Embedded Devices
Secure embedded software development is not a checklist you run at the end of a project. It is a discipline applied to every function, every memory allocation and every build step from the first line of code. This article covers the complete practice: the six foundational security principles that shape good firmware design, memory safety […]

ESP32-C6 vs ESP32-C5 vs ESP32-C3: The Ultimate Comparison Guide for IoT Developers
Choosing between the ESP32-C3, ESP32-C5 and ESP32-C6 can be confusing. All three are RISC-V based microcontrollers from Espressif’s cost-optimized C-series, but they target different use cases and feature sets. This comprehensive guide breaks down every difference to help you select the perfect board for your next IoT project. Quick Overview: ESP32-C3 vs ESP32-C5 vs ESP32-C6 […]

Push Button with ESP32 DOIT DevKit v1 – Step-by-Step Tutorial
Introduction A Push Button is a simple input device used to control circuits. When pressed, it makes a connection between its terminals and sends a digital signal to the ESP32. In this tutorial, we’ll use a Push Button connected to GPIO 5 of ESP32 DOIT DevKit v1. When the button is pressed, the onboard LED […]

RGB LED with ESP8266 (NodeMCU / Wemos D1 Mini)
Introduction RGB LEDs are special LEDs that combine Red, Green, and Blue in one package. By adjusting the brightness of each color, you can create millions of colors 🌈. In this tutorial, you’ll learn: This project is beginner-friendly and helps you understand analogWrite (PWM) on ESP8266. What You Need Understanding RGB LEDs There are two […]

Hardware Security and Secure Boot
Software security controls are only as strong as the hardware layer beneath them. An attacker who can bypass the boot sequence, read flash directly or inject a voltage glitch to skip an authentication check defeats every software protection you built, regardless of how correct that code is. This article covers embedded hardware security from the […]

Thread vs Zigbee vs Matter vs BLE: The Ultimate Smart Home Protocol Comparison Guide
Choosing the right wireless protocol for your smart home or IoT project can be overwhelming. Thread, Zigbee, Matter and BLE (Bluetooth Low Energy) are the four major players in 2026, but they serve different purposes and work in fundamentally different ways. This comprehensive guide breaks down every difference to help you make the right choice. […]

Buzzer with ESP32 DOIT DevKit v1 – Step-by-Step Tutorial
Introduction A buzzer is a simple sound-producing device that can be controlled using a microcontroller. There are two types of buzzers: In this tutorial, we’ll use a buzzer connected to GPIO 4 of ESP32 DOIT DevKit v1 and make it beep using the Arduino IDE. Components Required Circuit Diagram ⚠️ If using a passive buzzer, […]

LED Brightness Control using PWM on ESP8266
Introduction The ESP8266 does not have a true analog output, but it uses PWM (Pulse Width Modulation) to simulate it. With PWM, you can adjust the LED brightness smoothly instead of just turning it ON or OFF. In this tutorial, you will learn: What is PWM? PWM stands for Pulse Width Modulation. On ESP8266, the […]

5G vs LoRaWAN: The Ultimate Comparison for IoT Developers
5G vs LoRaWAN is one of the most critical decisions IoT architects and developers face when designing connected systems. Both technologies enable wireless communication, but they serve vastly different use cases, constraints and deployment models. Understanding their strengths, limitations and ideal applications is essential for building scalable, cost-effective and reliable IoT solutions. This in-depth comparison […]

MQTT vs CoAP: The Ultimate Comparison for IoT Protocols
MQTT vs CoAP is a fundamental question for IoT developers choosing a messaging protocol for constrained devices and networks. Both protocols are lightweight, open standards designed for machine-to-machine (M2M) communication, but they differ significantly in architecture, transport layer, use cases, and performance characteristics. This in-depth comparison breaks down their technical foundations, strengths, weaknesses, and ideal […]

Communication Security for Embedded Devices
Network communication is the attack surface exploited in the majority of large-scale IoT compromises. Mirai, the botnet that took down a large portion of internet infrastructure in 2016, spread entirely through network-accessible devices with weak or no authentication on their management interfaces. The devices themselves were not exotic: IP cameras, DVRs and home routers, all […]

LDR (Light Sensor) with ESP32 DOIT DevKit v1 – Step-by-Step Tutorial
Introduction An LDR (Light Dependent Resistor) is a sensor that changes its resistance based on light intensity: By connecting the LDR to an analog input pin of ESP32, we can measure the light intensity and use it in IoT projects. In this tutorial, we’ll connect the LDR to GPIO 35 of ESP32 DOIT DevKit v1 […]

Buzzer with ESP8266 (NodeMCU/Wemos D1 Mini)
Introduction Buzzers are small devices that produce sound. They are often used in alarms, timers, and notification systems. With ESP8266, you can control buzzers to create beeps, tones, and even simple melodies. There are two types of buzzers: 👉 In this tutorial, we’ll cover both. Components Required Circuit Diagram Text description (for D5 / GPIO14): […]

Edge AI vs Cloud AI for Real-Time Decisions: Practical Tradeoffs, Architecture and Code
Edge AI vs Cloud AI for real-time decisions is a design choice that directly impacts latency, reliability, cost and what you can safely automate. This comparison is for intermediate IoT and embedded engineers who need to pick an architecture for real-time control, anomaly detection, video analytics or predictive maintenance. You will learn where edge inference […]

TinyML vs Full ML: When to use which (and why it matters in IoT)
TinyML vs Full ML: When to use which is a practical decision you make on almost every real IoT machine learning project. This comparison breaks down the tradeoffs across latency, cost, accuracy, power, connectivity, privacy and maintainability, with concrete selection rules and code you can run. It is written for intermediate embedded and IoT engineers […]

SQLite vs LittleFS on Embedded Devices: What to Use and Why
SQLite vs LittleFS on embedded devices is a common design decision when you need reliable storage for logs, configuration and local state. This comparison helps you pick the right approach based on flash constraints, power-loss risk, query needs and firmware complexity. You will learn what each technology really provides, how they behave on microcontrollers (MCUs) […]

MQTT vs Kafka for IoT Data Pipelines: What to Use and When
MQTT vs Kafka for IoT data pipelines is a practical choice you make when you move sensor data from devices to applications, analytics and storage. This comparison targets intermediate IoT and embedded engineers who already know basic pub/sub concepts and want concrete selection criteria, tradeoffs and integration patterns. You will learn how MQTT (Message Queuing […]

InfluxDB vs TimescaleDB for IoT telemetry: what to pick and why
InfluxDB vs TimescaleDB for IoT telemetry is a practical decision about ingestion speed, query patterns, operational overhead and how you want to model time-series data. This comparison is for intermediate IoT and embedded engineers who already collect metrics or sensor data and now need a database that will scale cleanly from a pilot to production. […]

OTA Update Strategies: Delta vs Full Firmware (What to Use When)
OTA update strategies: Delta vs Full firmware is one of the most practical design decisions you will make for any connected device, because it directly impacts bandwidth, failure rates and support cost. This comparison is for intermediate embedded and IoT engineers who already ship firmware and now want a clearer, more quantitative way to choose […]

PSK vs Certificate-based auth in MQTT: When to Use Each
PSK vs Certificate-based auth in MQTT comes up any time you need to secure device connections while keeping manufacturing, onboarding and operations manageable. This comparison is for intermediate IoT and embedded engineers who already use MQTT (Message Queuing Telemetry Transport) and Transport Layer Security (TLS) but need to choose an authentication model that will scale […]

TLS vs DTLS for IoT: What to Use and Why
TLS vs DTLS for IoT is a practical choice you make when you decide between TCP-based security (TLS) and UDP-based security (DTLS) for device-to-cloud or device-to-device traffic. This comparison is for embedded and IoT engineers who already know the basics of TCP/UDP and want to pick the right protocol for real networks, real constraints and […]

Raspberry Pi vs BeagleBone Black: The Complete Comparison
Choosing between a Raspberry Pi vs BeagleBone Black is a classic dilemma for embedded developers and IoT enthusiasts. This in-depth comparison breaks down their hardware, software ecosystems, real-time capabilities, and ideal use cases to help you select the right single-board computer (SBC) for your next project. Table of Contents Introduction: Raspberry Pi vs BeagleBone Black […]

Wi-Fi HaLow vs LoRa: The Ultimate Comparison for IoT Engineers
Wi-Fi HaLow vs LoRa is a critical comparison for IoT developers choosing long-range, low-power wireless protocols. Both standards aim to solve similar challenges—extending connectivity beyond traditional Wi-Fi or cellular—but they do so with fundamentally different architectures, trade-offs, and use cases. If you’re designing battery-powered sensors, industrial monitors, or smart agriculture systems, understanding the nuances between […]

NB-IoT vs LTE-M: The Ultimate Comparison for IoT Developers
When evaluating cellular IoT connectivity options, the question often comes down to NB-IoT vs LTE-M. Both are 3GPP-standardized LPWAN (Low Power Wide Area Network) technologies designed for the Internet of Things, but they serve different use cases based on power, bandwidth, mobility and cost requirements. This in-depth comparison breaks down their technical specs, deployment considerations, […]

Secure SDLC for Embedded Projects
A vulnerability found in production firmware costs ten to a hundred times more to fix than the same vulnerability found during design or code review. For embedded devices already in the field, a firmware update may require physical technician access, OTA (Over-the-Air) update infrastructure, regulatory resubmission or a product recall. The secure SDLC (Software Development […]

Potentiometer with ESP32 DOIT DevKit v1 – Step-by-Step Tutorial
Introduction A potentiometer (often called a pot) is a variable resistor that allows you to adjust resistance manually by rotating its knob. It is commonly used for volume control, brightness adjustment, and sensor calibration. When connected to an ESP32, a potentiometer works as a voltage divider, giving an analog output that the ESP32 can read. […]

Push Button with ESP8266 (NodeMCU / Wemos D1 Mini)
Introduction A push button is a simple switch that connects or disconnects a circuit when pressed. With ESP8266, push buttons are used for: In this tutorial, we’ll learn how to: Components Required Circuit Diagram We’ll connect the button to GPIO D5 (GPIO14). Wiring: 👉 This means the button is normally HIGH, and goes LOW when […]

Threat Detection and Incident Response for Embedded Devices
Detecting and responding to attacks on embedded devices is a fundamentally different discipline from IT security operations. Embedded devices cannot run endpoint detection agents, have kilobytes rather than gigabytes of storage for logs, operate for years between maintenance windows and often lack a persistent management interface that an incident responder can reach remotely. Yet the […]

LED Brightness Control with Potentiometer using ESP32 DOIT DevKit v1
Introduction An LED can be turned ON or OFF using a digital pin, but controlling its brightness requires PWM (Pulse Width Modulation). The ESP32 supports PWM on almost all GPIOs, which makes it easy to adjust LED brightness smoothly. In this tutorial, we’ll use a potentiometer (GPIO 34) to control the brightness of an LED […]

DHT11 / DHT22 with ESP8266 (NodeMCU / Wemos D1 Mini)
Introduction The DHT11 and DHT22 are widely used sensors to measure temperature and humidity. In this tutorial, you’ll learn how to: Introduction The DHT11 and DHT22 are widely used sensors to measure temperature and humidity. In this tutorial, you’ll learn how to: DHT11 vs DHT22 Comparison Feature DHT11 DHT22 (AM2302) Temperature Range 0°C to 50°C […]

Deployment, Updates and Maintenance for Embedded Devices
The firmware update mechanism is simultaneously the most important security capability in a deployed embedded device and one of the most dangerous attack surfaces it exposes. A robust OTA (Over-the-Air) update process is how you patch vulnerabilities discovered after deployment and keep a device fleet defensible across a five-to-fifteen-year operational lifetime. A broken or insecure […]

Interfacing 1602 LCD with I2C Module using ESP32 DOIT DevKit v1
Introduction The 1602 LCD is a 16×2 character display commonly used in electronics projects. Normally, it requires 16 pins for operation, which makes wiring complex. By using an I2C module (PCF8574) attached to the back of the LCD, we can reduce the connections to just 4 pins: VCC, GND, SDA, and SCL. In this tutorial, […]

MQ-2 Gas Sensor with ESP8266 | Gas & Smoke Detection Tutorial
Introduction The MQ-2 gas sensor is one of the most popular sensors used in embedded systems and IoT projects for detecting harmful gases in the air. It can detect gases like LPG, methane, butane, smoke, alcohol, and hydrogen. Because of its low cost and wide availability, it is commonly used in home safety systems, industrial […]

Tools for Embedded Security Testing
Embedded security testing spans four disciplines that each require their own toolset: static and dynamic code analysis to find vulnerabilities before firmware ships, hardware attack tools to test the physical security of the device itself, network protocol analyzers to verify that communication is correctly secured, and firmware forensics tools to reverse-engineer and investigate binary images. […]

Reading Temperature & Humidity using DHT11 and ESP32 DOIT DevKit v1
Introduction The DHT11 is a low-cost digital sensor that measures temperature and humidity. It’s easy to use, but less accurate compared to the DHT22. It communicates with the ESP32 using a single digital pin, making it perfect for beginners’ IoT projects. In this tutorial, we’ll connect the DHT11 sensor to GPIO 25 of the ESP32 […]

Single Channel Relay with ESP8266 (Step-by-Step Guide)
Introduction A relay module is an electrically operated switch that allows the ESP8266 to control high-voltage devices like lamps, fans, and home appliances using its low-voltage GPIO pins. Since ESP8266 works at 3.3V logic, it cannot directly switch high-power loads. That’s why we use a single channel relay module, which acts as a bridge between […]

Embedded Security Best Practices and Guidelines
The majority of embedded device security incidents are caused by a small, well-documented set of avoidable mistakes: hardcoded credentials, unvalidated inputs, broken cryptography, open debug interfaces left enabled in production, and missing update mechanisms. These failures are not exotic; they appear repeatedly across product categories and vendors because the pressures of embedded development (resource constraints, […]

Interfacing MQ-2 Gas Sensor with ESP32 DOIT DevKit v1
Introduction The MQ-2 Gas Sensor is one of the most popular sensors for detecting gases like LPG, propane, methane, hydrogen, alcohol, and smoke. It works on the principle of resistance change—the sensor’s internal resistance decreases when exposed to gas, which changes the output voltage. The MQ-2 module provides both: In this tutorial, we will connect […]

Trimmer Potentiometer with ESP8266 (Step-by-Step Guide)
Introduction A potentiometer is a variable resistor that allows you to adjust resistance manually. A trimmer potentiometer (or trimpot) is a small, adjustable version usually used on PCBs for fine-tuning voltage, brightness, contrast, or calibration in circuits. When we connect a trimmer potentiometer with the ESP8266, we can use it as an analog input device. […]

Future Trends in Embedded Security
Embedded security does not stand still. The threat landscape that engineers design against today is materially different from the one that existed when the Mirai botnet demonstrated in 2016 that millions of unpatched, default-password IoT devices could be weaponised into the largest DDoS infrastructure ever assembled. Since then, the scale of the connected device ecosystem […]

Interfacing Capacitive Soil Moisture Sensor with ESP32 DOIT DevKit v1
Introduction The Capacitive Soil Moisture Sensor is widely used in smart farming and gardening projects. Unlike the resistive type, it does not corrode easily, making it more durable for long-term use. The sensor measures the dielectric constant of soil: wetter soil has a higher dielectric constant, which changes the sensor’s output voltage. The sensor provides […]

Trimmer Potentiometer Controlling LED Brightness with ESP8266
Introduction A trimmer potentiometer is a small adjustable resistor used to vary voltage levels in a circuit. The ESP8266 has an ADC pin (A0) that can read the voltage from the potentiometer and convert it into values between 0 and 1023. On the other hand, the ESP8266 supports PWM (Pulse Width Modulation) on most GPIO […]

ESP32 Attack Surface Analysis: Practical Lab Guide
Before you can secure an embedded device you need to know what can be attacked. This lab builds a systematic ESP32 attack surface analysis: every hardware pin, wireless radio, software service and debug connector is catalogued, scored on a 1–10 risk scale and fed into a prioritised remediation plan. The complete Arduino code runs on […]

HC-SR04 Ultrasonic Sensor with ESP32 DOIT Kit v1
Introduction The HC-SR04 Ultrasonic Sensor is widely used for distance measurement in robotics, automation, and obstacle detection projects. It works by sending out ultrasonic waves and measuring the time it takes for the waves to bounce back after hitting an object. The ESP32 makes an excellent choice for working with the HC-SR04 because it offers […]

HC-SR501 PIR Motion Sensor with ESP8266
Introduction The HC-SR501 PIR (Passive Infrared) Motion Sensor is one of the most widely used sensors for detecting human and animal movement. It works by detecting changes in infrared radiation (heat) emitted by living beings. When motion is detected, the sensor outputs a HIGH signal, which can be read by a microcontroller like the ESP8266. […]

Capturing Insecure IoT Traffic: ESP32 Lab with Wireshark
More than 70% of deployed IoT devices transmit sensitive data without encryption. This lab makes the consequence of that concrete: you will run an insecure HTTP server on an ESP32, capture its traffic in Wireshark, and watch passwords, API keys and device credentials appear in plain text in under 30 seconds — no hacking skills […]

DS18B20 Temperature Sensor with ESP32 DOIT Kit v1
Introduction The DS18B20 is a digital temperature sensor that provides highly accurate temperature readings over a range of -55°C to +125°C. Unlike analog sensors, it communicates over the OneWire protocol, which means multiple DS18B20 sensors can be connected to a single pin of the ESP32. Key features include: In this tutorial, we will: Components Required […]

Capacitive Soil Moisture Sensor with ESP8266
Introduction A Capacitive Soil Moisture Sensor is an advanced version of the traditional resistive soil moisture sensor. Unlike resistive sensors, which corrode easily due to direct exposure to water and soil electrolytes, the capacitive sensor uses capacitance to measure moisture levels. This makes it more durable, accurate, and long-lasting. When soil is wet, its dielectric […]

Buffer Overflow on ESP32: Hands-On Demonstration Lab
Buffer overflows are the most common and historically most damaging vulnerability class in embedded systems. They occur when more data is written to a fixed-size buffer than it can hold, corrupting whatever memory lies beyond the buffer boundary. This lab demonstrates real buffer overflows on an ESP32: you will see crashes, observe memory corruption in […]

Relay Module with ESP32 DOIT Kit v1
Introduction A relay module is an electrically operated switch that allows your ESP32 to control high-voltage or high-current devices like lights, fans, motors, and other home appliances. Since the ESP32 operates at 3.3V logic and can’t directly handle high power loads, the relay acts as a bridge between low-power control (ESP32) and high-power devices (AC/DC). […]

HC-SR04 Ultrasonic Sensor with ESP8266
Introduction The HC-SR04 Ultrasonic Sensor is widely used to measure distance by emitting ultrasonic waves and measuring the time it takes for the echo to return. It works like sonar: The ESP8266 reads this timing and converts it into centimeters (cm) or inches (in). Ultrasonic sensors are commonly used in robotics, automation, parking sensors, and […]

ESP32 Flash Memory Extraction: Firmware Security Lab
Of all the vulnerabilities in an embedded device, unencrypted flash memory is the one that requires the least skill to exploit and produces the most complete compromise. An attacker with physical access to an unprotected ESP32 and a USB cable can extract the entire firmware image in under 10 minutes using a free, official tool […]

HC-SR501 PIR Motion Sensor with ESP32 DOIT Kit v1
Introduction The HC-SR501 PIR (Passive Infrared) sensor is used to detect motion by sensing infrared radiation from objects, mainly humans and animals. It’s widely used in security systems, automatic lights, and smart IoT projects. Key features: In this tutorial, we’ll connect the HC-SR501 PIR sensor to ESP32 (GPIO 18), read motion detection signals, and display […]

Secure MQTT with TLS in Node.js: Lab 6 Guide
In Lab 3 you captured MQTT credentials in Wireshark in under 30 seconds. In this lab you implement the correct alternative: MQTT over TLS with root CA certificate verification using Node.js. You will see what Wireshark shows when encryption is active (the TLS handshake followed by unreadable application data), verify that the client refuses to […]

Interfacing NEO-6M GPS Module with ESP32 DOIT Kit v1
Introduction The NEO-6M GPS module is a powerful, low-cost GPS receiver that allows your ESP32 projects to access real-time location data, including latitude, longitude, altitude, and time. GPS technology is widely used in applications such as navigation systems, asset tracking, robotics, weather stations, and even agriculture monitoring. The ESP32 DOIT Kit v1, with its built-in […]

Static Code Analysis for ESP32: cppcheck Security Lab
Every security vulnerability in firmware was introduced by a developer writing code. The fastest, cheapest way to find those vulnerabilities is to run a static analysis tool against the source code before the firmware is ever compiled or flashed to hardware. Static analysis examines the code without executing it, applying rules and data flow analysis […]

SG90 Servo Motor with ESP32 DOIT Kit v1
Introduction The SG90 servo motor is a lightweight and low-cost motor commonly used in robotics, IoT, and automation projects. Unlike DC motors, which rotate continuously, a servo motor can be controlled to move to a specific angle (0°–180°) with great precision. The ESP32, with its PWM (Pulse Width Modulation) capability, is perfect for controlling servo […]

IoT Security Logging and Monitoring: ESP32 Lab
Static analysis finds vulnerabilities before deployment. TLS (Lab 6) protects data in transit. Flash encryption (Lab 5) protects firmware at rest. But none of these controls tell you when an attacker is actively probing your device. Security event logging bridges that gap: it records every significant security event on the device, detects patterns that indicate […]