The Essence of Embedded Systems - Fundamentals (Embedded Systems Essentials)
An introductory course that lets you experience the entire embedded development process at once—from installing Linux to controlling a robot When you want to get started with embedded systems, it can be overwhelming to know where to begin. This course is designed for those people to experience the entire process at once, starting with a single PC and ending with making a robot move. It covers everything from Linux installation and basic configuration, and preparing a Raspberry Pi, to reading circuit diagrams and datasheets, and practicing basic communication interfaces. Rather than focusing on depth, it focuses on understanding the overall structure.
120 learners
Level Basic
Course period Unlimited


News
17 articles
Hello.
This is Hochu Dad from the Coding Beginner Rescue Team.
This time, based on what we learned in the course, I’d like to discuss something worth considering at least once during the actual development process.
In the course, we learn how to detect obstacles using an IR sensor and control the motor based on the results.
However, in real-world environments, sensors do not always behave as expected.It may be momentarily detected even when there is no obstacle, or
Even when there is an obstacle, it may temporarily go undetected.
Depending on the surrounding environment, sensor readings may become unstable.
What would happen if the motor were controlled immediately after reading the sensor value?
The robot might stop unnecessarily, or the motors might repeatedly operate.
So how can this be improved?
One of the simplest ways is to check the sensor value multiple times instead of just once.
For example, rather than stopping immediately when an obstacle is detected, you can stop only after it has been detected three times in a row.
In Python, this can be expressed as follows.count = count + 1 if detected else 0if count >= 3: stop_motor()※ This is a simplified example for ease of understanding;
detectedrepresents the obstacle detection result, andstop_motor()represents the motor stop function.Of course, in an actual implementation, you also need to consider the sensor's measurement interval and the robot's response speed.
These small improvement processes are precisely an important part of real-world embedded software development.This Week's Small Challenge!
How about making a few modifications to the obstacle detection feature implemented in the lecture?
Compare how the motor responds when an obstacle is detected consecutively 1, 3, and 5 times.
Rather than simply writing code that works, we hope you develop the habit of considering why it works this way and how it can operate more reliably.Thank you.
From the “Korin-i Rescue Team”
Hello.
I'm Pepper Daddy from the Coding Beginner Rescue Team.While following along with the exercises in a course, you may sometimes think you did everything exactly as shown in the video, yet it does not work, or you may encounter an unexpected error. In such cases, please don't spend too long trying to figure it out on your own—feel free to leave a question.
However, if you also provide the information below, we can narrow down the scope of the problem much more quickly.Which course and which exercise
How far it proceeded normally
What result you expected
What actually happens
The command you ran and the error message
If possible, include the code you wrote and a photo of the wiring
For example,
❌ "The GPIO exercise isn't working."
Rather than
⭕ "I'm working on the GPIO output exercise. The program runs normally without any errors, but the LED does not turn on. I used GPIO pin XX, and the current wiring and code are as follows."Or,
❌ "SSH connection does not work."
Rather than
⭕ "The Raspberry Pi and PC are connected to the same router, and ping works normally.ssh jcrt@192.168.x.xWhen I run it,Permission denied (publickey)is displayed."
It would be helpful if you provided details like this.As you write your question, organizing “what is working properly and where the problem starts” is itself good debugging practice. If you still don’t know, that’s okay. Just write down as much as you know, and we’ll look into it together.
If you get stuck while taking the course, feel free to leave a question anytime.Thank you.
From the Coding Beginners Rescue TeamHello.
This is Huchu’s dad from the Coding Beginners Rescue Team.Before long, the Chuseok holiday will be just around the corner next week.
First of all, I would like to thank all the students who seek out my lectures and continue learning with me.It’s perfectly fine to take a short break during the long holiday, and if you have some free time, you might also slowly catch up on one or two of the lectures you’ve fallen behind on.
I believe that when studying embedded systems, it is more important to become familiar with things one at a time by connecting them yourself, running them, and sometimes getting stuck than to learn a lot of material all at once.
Please don’t rush to complete the course—enjoy following along at your own pace.
I hope you have a happy and relaxing Chuseok holiday with your family. :)Thank you.
From the Coding Beginner Rescue TeamHello.
This is Heochoo Dad from Coding Beginners Rescue.
We have updated the information regarding the RC522 RFID module in the list of required materials.RFID cards are not included with RC522 module products that have already been soldered,
so we have added a separate RFID card purchase link to the list of materials for those who selected this product.
If you have already purchased the RC522 module but do not have an RFID card, please prepare the card from the added link as well
so that you can proceed with the course exercises.I will continue updating the confirmed information regarding the required materials to avoid any confusion.
Thank you.
Best regards,
The Coding Rescue TeamHello.
This is Huchu’s dad from Coding Beginner Rescue.On the latest Raspberry Pi OS,
pigpiodis not installed by default, so you may see the following message while doing the PWM exercises in the course.
$ sudo systemctl status pigpiod
Unit pigpiod.service could not be found.Since the PWM exercise uses the
pigpiolibrary, please install and runpigpiodin the following order.
$ sudo apt update
$ sudo apt install -y git build-essential
$ git clone https://github.com/joan2937/pigpio.git
$ cd pigpio
$ make
$ sudo make install
$ sudo ldconfigAfter installation, run
pigpiodwith the command below.
$ sudo pigpiodYou can check whether it is running properly with the command below.
$ pgrep pigpiod
If a number is displayed, it is running normally.
You can then run the PWM practice code as shown in the lecture.
If the same issue occurs during the practice, please leave a post on the Q&A board, and we will assist you.Thank you.
Sincerely, the Coding Beginners Rescue TeamHello.
This is Heochoo Dad from Korini Rescue.The raspi-gpio tool used when the course was recorded is no longer maintained.
Therefore, on the latest Raspberry Pi OS, you should use the successor tool, pinctrl.The command shown below in the lecture is
$ raspi-gpio get 0
Please run it as follows in the current environment.
$ pinctrl get 0The basic get/set commands used in the course
can be followed in the same way by replacing raspi-gpio with pinctrl.Thank you.
Sincerely, the Coding Beginner Rescue TeamHello.
This is Huchu's dad from Korini Rescue Team.If you have learned the overall flow of embedded systems in the Fundamentals course,
you can now continue with the Firmware course, where you implement those concepts using real STM32 hardware and C code.
In the Firmware course, you will implement GPIO, UART, PWM, I2C, ADC, and Timer yourself, and finally work on a project that integrates each function into a single firmware system.Early-bird discounts are currently available for the Firmware section, and
even after the early-bird period ends, you can take both the Fundamentals and Firmware sections at a 30% discount through the “The Essence of Embedded Systems” roadmap.
If you are still studying the Fundamentals section, there is no need to rush. Once you have fully mastered the Fundamentals section, you can naturally move on to the next step.If you know anyone who wants to study embedded systems or firmware development, we would appreciate it if you could also introduce them to the “The Essence of Embedded Systems” Roadmap.
If you have any questions while taking the course, please feel free to leave them below.
Thank you.
Sincerely, Corini Structure Rescue TeamHello,
I'm Pepper's Dad from the Newbie Coder Rescue Team.The second course following "The Essence of Embedded Systems - Basic,"
"The Essence of Embedded Systems - Firmware," has been released.To celebrate the release of the Firmware Edition, the Basic Edition is also available at a 25% discount during the early bird period.
Additionally, as a token of appreciation for existing students of the Basic Edition, we have separately provided a 40% discount coupon for the Firmware Edition.Understand the principles of embedded systems in the Basic course,
and implement them yourself using STM32 in the Firmware course.
We ask for your interest and help in promoting the lectures. :)Thank you.
From the Corini Rescue Team

