Advanced Search
Search Results
297 total results found
Module 1 - Introduction to Digital Circuit
Module 2 - Boolean Algebra & Basic Logic Gates
Module 3 - Karnaugh Map
By the end of this module, you will be able to: Understand the purpose of a Karnaugh Map (K-Map) as a visual tool for simplifying digital logic.Correctly create a K-Map for functions with 2, 3, or 4 input variables.Translate a Boolean function or a truth tabl...
Module 4 - Complex Logic Gates
A complex logic gate is a digital circuit component that performs a logical function built from a combination of basic logic gates like AND, OR, and NOT. The most commonly used complex gates are NAND (Not-AND), NOR (Not-OR), XOR (Exclusive-OR), and XNOR (Exclu...
Module 5 - Decoder & Encoder
Module 6 - Multiplexer & Demultiplexer
Understand how Multiplexer and Demultiplexer works.
Module 7 - Arithmetic Circuit
Module 8 - Flip-Flop & Latch
Module 9 - Register & Counter
Module 2 - Dataflow Style
Module 2 - Task Management
Module 2 : Functions in C
Learning Objectives: Understand the concept and importance of functions in C programmingDeclare and define functions with proper syntaxUse function parameters and return values effectivelyApply different parameter passing mechanisms (pass by value)Understand ...
Module 6 - Tree
Module 9 - Advanced Graph
Module 3 - Behavioural Style
A behavioral style in VHDL describes a digital system by specifying its functionality using high-level algorithms and sequential statements without detailing the underlying hardware structure.
Module 8 : OOP (SOLID, Encapsulation, Abstraction)
By the end of this module, students will be able to: - Understand the fundamental concepts of Object-Oriented Programming (OOP) - Transition from procedural C programming to OOP in C++ - Implement classes and objects in C++ - Apply encapsulation principles...
Module 3 - Memory Management & Queue
By WN
Module 3 : Array (Static)
By the end of this module, students will be able to: - Understand the fundamental differences between Python lists and C arrays - Declare and initialize static arrays with appropriate data types - Access and manipulate array elements using indexing - Imple...
Module 4 - Testbench
Module 4 - Merge Sort and Quick Sort
5.8 Advanced Project: A Multi-Sensor Data Logger
In this chapter, we will build a complete data logging application that utilizes all the core concepts we have learned: hardware interrupts for precise data acquisition, queues for safe data transfer, multiple tasks with different priorities for processing and...
PlatformIO Guide
About PlatformIO is a versatile, open-source ecosystem designed for embedded development, providing a unified platform for building, managing, and debugging firmware across a wide range of microcontroller architectures. Integrated with popular IDEs like VSCode...
4.1 Learning Objectives
After completing this module, students are expected to be able to: Understand the importance of synchronization in multi-tasking systems and the risks of race conditions. Recognize and implement basic synchronization mechanisms: Mutexes and Semaphores in Free...
4.2 Introduction: The Problem of Shared Resource Access
In multi-tasking systems, multiple tasks often need to access the same resource simultaneously, such as a global variable, a sensor interface, or a data structure. If this access is not managed properly, it can lead to data corruption, inconsistencies, or unex...
4.3 Synchronization Mechanisms in FreeRTOS
FreeRTOS provides several synchronization primitives, the most common of which are Mutexes and Semaphores. Both are built upon a basic data structure called a queue. Mutex (Mutual Exclusion) A mutex can be thought of as a "key" to a resource. A task that wan...
4.4 Common Problems in Synchronization
Deadlock A deadlock is a situation where two or more tasks are blocked forever, each waiting for a resource that is held by another task in the cycle. Example Deadlock Scenario: Task A successfully locks Mutex 1. Task B successfully locks Mutex 2. Task A no...
4.5 Prevention and Handling Strategies
Overcoming Deadlock Since detecting and recovering from a deadlock in an embedded system is very difficult, the best approach is prevention. This is done by breaking one of the four Coffman conditions. Break Circular Wait: Enforce a strict lock ordering for...
7.1 Introduction: The IoT Communication Stack
For an IoT device to be useful, it needs to communicate. This communication happens in layers, much like a conversation. You need to have connectivity, then you need a common language to request things (web communication), and sometimes a specialized shorthand...
7.2 Local Network Connectivity with Wi-Fi
Wi-Fi is a technology based on the IEEE 802.11 standards that enables wireless data exchange. The ESP32 supports common standards like 802.11b, 802.11g, and 802.11n, operating in the 2.4 GHz frequency band. ESP32 Wi-Fi Modes Station Mode (STA): The ESP32 acts...
7.3 Web Communication with HTTP/HTTPS
HTTP HTTP (Hypertext Transfer Protocol) is the foundation of data communication on the World Wide Web. It operates on a request-response model. Client (ESP32): The client make a request to the server for a resource, like a webpage or data. Server (A Web Serve...
7.4 Efficient IoT Messaging with MQTT
MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol designed for constrained devices and unreliable networks, making it perfect for IoT. Instead of the request-response model, MQTT uses a publish/subscribe (pub/sub) model. MQTT Compo...
10.1 Introduction
Module 10: Mesh Author: YP Learning Objectives After completing this module, students are expected to be able to: Explain the concept, advantages, and basic architecture of IoT mesh networks. Implement a simple mesh network using ESP32 with the painlessMesh l...
10.3 Example Code
10.3.1 Root Node #include <Arduino.h> #include <painlessMesh.h> #include <WiFi.h> // --- Konfigurasi Jaringan --- #define MESH_PREFIX "jaringan_mesh_saya" // HARUS SAMA dengan semua node #define MESH_PASSWORD "password_mesh" // HARUS SAMA dengan se...
10.2 What is Mesh?
10.2.1 What is a Mesh Network? A mesh network is a topology where each device (node) is interconnected, creating multiple paths for data. Unlike traditional networks that rely on a single central point (such as a router), a mesh network is decentralized. How ...
1.1 Learning Objectives
After completing this module, students are expected to be able to: Understand the difference between a General-Purpose Operating System (GPOS) and a Real-Time Operating System (RTOS) Understand the differences and benefits of Multi-Threading on a Microcontrol...
1.2 Introduction to RTOS
GPOS The types of OS we often use (Windows, Linux, Mac, Android, iOS) can be classified as GPOS, which, as the name suggests, are designed for general purposes and typically utilize a GUI or CLI as the human interaction interface. GPOS systems are designed to ...
1.3 Microcontroller Architecture
Besides the differences in the type of OS used, there are also differences in the microcontrollers used. In this IoT lab, the ESP-32 microcontroller is used, which differs from the Arduino Uno used in the Embedded Systems lab. Look at the table below for a com...
1.4 FreeRTOS
So what is FreeRTOS? [4] FreeRTOS is one of the most widely used RTOS implementations in the world of embedded systems and IoT. As its name implies, FreeRTOS is open-source and free to use. Based on the previous explanation of RTOS, FreeRTOS acts as a lightwei...
1.5 Additional References
What Is a Real-Time Operating System (RTOS)? – DigiKey Maker.io Real-Time Operating System (RTOS): Components, Types, Examples – Guru99 RTOS Fundamentals – FreeRTOS Official Documentation
1. Introduction: From Python to C
1.1 Key Differences Overview Aspect Python C Compilation Interpreted Compiled Type System Dynamic typing Static typing Memory Management Automatic Manual Syntax Style Indentation-based Brace-based Performance Slower execution Faster execution ...