The Essence of Embedded Systems - Basic Edition (Embedded Systems Essentials)

An introductory course to experience the entire flow of embedded development, from Linux installation to robot control. When starting with embedded systems, it can be overwhelming to know where to begin. This course is designed for those people, structured so you can experience the entire process—from a single PC to moving a robot—all at once. We cover everything from Linux installation, basic configuration, and Raspberry Pi preparation to reading schematics and datasheets, as well as hands-on practice with basic communication interfaces. The focus is on understanding the overall structure rather than deep technical complexity.

(5.0) 15 reviews

62 learners

Level Basic

Course period Unlimited

Raspberry Pi
Raspberry Pi
Embedded
Embedded
robot
robot
embedded-systems
embedded-systems
python3
python3
Raspberry Pi
Raspberry Pi
Embedded
Embedded
robot
robot
embedded-systems
embedded-systems
python3
python3

Reviews from Early Learners

5.0

5.0

박지수

31% enrolled

Trying to study programming on my own was difficult because I didn't know where to start and there was no one to give me detailed guidance. However, this lecture explained everything so well, starting from how to download the software to the finer details, that I was able to study alone without any trouble. Furthermore, by clearly explaining why things should be done a certain way and why a specific option should be chosen among several alternatives, I no longer find myself saying, "I just did it because they did it." Although I'm still a bit unpolished, I can now explain my choices with my own reasoning.

5.0

박규현

100% enrolled

While studying embedded systems on my own, I always felt it would be great to have important points or tips. I really appreciated how this lecture clearly explained everything step-by-step from the basic principles through the eyes of an industry professional. Also, I feel like we live in a world where AI is commonly used and knowledge is easily accessible; however, thanks to your systematic teaching of the fundamentals, I was able to reflect on the times I studied haphazardly and firmly solidify my previously lacking foundation.

5.0

두랄루돈

100% enrolled

I felt lost while studying embedded systems, but this course helped me a lot in understanding the overall flow. By personally practicing everything from Linux environment configuration to basic interfaces like GPIO, UART, and SPI, I was able to get a feel for how embedded systems operate. I liked that it wasn't just a "follow-along" practice, but allowed me to connect concepts with actual operations. I felt it was a perfect course for beginners to build a solid foundation.

What you will gain after the course

  • I can independently configure the basic environment required for development, starting from Linux installation. (Including BIOS settings, OS installation, and basic development tool setup)

  • You can prepare and run a Raspberry Pi-based embedded development environment on your own.

  • I can understand basic hardware configurations by looking at schematics, datasheets, and breadboards.

  • You can distinguish the concepts and purposes of GPIO, UART, PWM, I2C, and SPI, and control them directly.

  • Understand the overall flow of embedded systems by directly operating a simple robot that controls sensors and motors.

From Linux to Robots
Understanding Embedded Systems Through Architecture

An experience of completing a system, beyond just code



Firmware, RTOS, Embedded Linux...

Are you worried about which way to go
at the many crossroads? 🤔


However, the essence of embedded development is one and the same.

'Computer Architecture understanding' and

'The principles of controlling hardware'


Understanding the essence is the fastest shortcut to growth.


The reason why you should take this course right now


Take one step closer to the essence of embedded systems.



check 1.

Experience through robot projects
'Real-world problems beyond the code'

"The code is definitely correct, so why is the robot moving on its own?"
The moment the code on the screen meets real-world hardware, true development begins.

Through the experience of directly solving 'problems outside the code' such as unstable power, inaccurate sensor values, and minute mechanical errors, you can take one step closer to practical work.



check 2.

Essential Knowledge for Hardware Development:
Mastering the 5 Core Protocols

Have you ever felt overwhelmed standing before a 100-page datasheet for a sensor you've never seen before?

GPIO, UART, PWM, I2C, and SPI are the 'five standard languages' used to communicate with all components. This course dives deep into the operating principles of each protocol by directly analyzing their signals. Once you understand these principles, you will gain the power to analyze and control which parts of a datasheet to read and translate into code.


check 3.

Beyond the barriers of C
Experience embedded systems with Python

Are you missing out on the true fun of embedded development while struggling with C language pointers and memory issues?

This course intentionally chose Python. This is to temporarily set aside complex syntax and focus entirely on the very structure of 'software controlling hardware.' Once you understand the overall system structure first, you will be able to absorb C much faster when you encounter it later.


From Linux to Robots,
a curriculum completed through solid hands-on practice

Embedded System Overview and Learning Roadmap

In this section, we analyze the high barriers to entry in embedded engineering and introduce the learning objectives and curriculum of the Junior Code Rescue Team (JCRT). We provide an overview of core areas in embedded software—including firmware, RTOS, general-purpose OS, and host environments—to help learners understand the overall development workflow.

Host Installation (Boot Disk, Bootloader, Ubuntu)

In this section, we will proceed with the installation and configuration of Ubuntu as the basic environment for embedded development. From creating a boot disk and understanding bootloader concepts to installing Ubuntu and configuring basic packages, we will build a solid foundation for the first steps of development.

Raspberry Pi Development Environment Setup and Integration

Understand the booting structure of the Raspberry Pi and the role of the SD card, and create an SD card image for development in an Ubuntu environment. Efficiently configure the development environment between the host and target through remote connection using SSH and VSCode integration.

Interfaces (GPIO, UART, PWM, I2C, SPI)

In this section, we will directly handle the low-speed hardware interfaces, which are the most fundamental components of embedded systems. We will proceed with step-by-step practical exercises, starting from input/output control via GPIO to UART-based serial communication, LED control using PWM, and I2C/SPI-based sensor communication.

Robot Construction

In this section, based on the interfaces and control technologies learned previously, you will build and operate an actual robot. By integrating each element—from sensor input and control logic implementation to motor driving and communication settings—into a single system, you will gain hands-on experience with the entire flow of embedded development.

Build it yourself, and drive it yourself!

Point 1. Complete the system from the basics

From Linux environment setup to understanding circuits,
and controlling GPIO, UART, PWM, I2C, and SPI,
you will experience the entire process of assembling an actual robot and operating it with code.


Point 2. Replicate the actual development environment exactly

From Ubuntu installation and basic commands to
VSCode and SSH-based remote development environment configuration,
you will set everything up exactly as it is done in the industry.


Point 3. Control HW with SW

Implement low-speed interfaces directly based on
circuit diagrams and datasheets.
You will come to understand the boundary between hardware and software.

Point 4. Automate the completed system

Integrate sensor processing, motor control, and RFID recognition logic,
and register them as systemd services to configure an automatic execution environment.

Are you feeling overwhelmed about where to start with embedded development?
This course was created specifically for people like you.


✔️ Beginners starting embedded development for the first time

  • Those who want to experience the entire flow from Linux installation to robot control

  • Those who want to look at schematics and datasheets to handle hardware directly


  • Those who want to build a solid foundation by directly controlling GPIO, UART, PWM, I2C, and SPI

✔️ Non-majors who want to handle both hardware and software

  • Those who want to create actual working results rather than just learning theory

  • Those who want to start in a PC environment and build their own Raspberry Pi-based embedded development environment.

  • Those who want to understand the operating principles of a system through sensor and motor control

✔️ Beginner developers who want to grow quickly through hands-on practice

  • Those who want to learn through actual code and results rather than complex theories

  • Those who want to gain experience in assembling and controlling things themselves

  • Those who want to grasp the overall structure of embedded development in a short period of time.


The first step to understanding the structure of embedded systems,
The Essence of Embedded Systems - Basic Edition start here.

Notes before taking the course


Practice Environment

  • The practice sessions will be conducted based on the Raspberry Pi 4B+ model.

  • Please prepare a MicroSD card of 64GB or more and a power adapter.

  • The process will be conducted in an Ubuntu 24.04 LTS-based environment (actual PC or VM).

Prerequisites and Precautions

  • It is recommended to have experience using basic Linux commands.

  • It will be helpful for your learning if you have a basic understanding of Python 3 syntax.

  • It is helpful to have a basic understanding of hardware.

Learning Materials

  • All practice source codes and examples are provided through a public repository (Gitlab).
    You can continue to use them even after the practice by modifying or expanding them yourself.

  • Reference datasheets and library documentation will be provided.


Recommended for
these people

Who is this course right for?

  • Beginners who want to start with embedded systems but feel overwhelmed and don't know where to begin.

  • Non-majors or beginners who have never personally handled Linux or hardware before.

  • A beginner developer who has only studied theory but hasn't actually built anything.

  • Those who want to quickly experience the overall structure of embedded development.

Need to know before starting?

  • This is a beginner-level course, and you should have a basic knowledge of Python.

  • No other prior knowledge is required. Anyone can take this course as long as they know how to use a computer.

  • It is okay if you have no experience with Linux, hardware, or programming. All necessary concepts will be explained from scratch in the lecture.

  • Basic PC experience (such as copying files, installing programs, etc.) is helpful.

Hello
This is jcrt

268

Learners

18

Reviews

2

Answers

5.0

Rating

2

Courses

I am an engineer with 14 years of experience, ranging from low-level development to system design.

I have carried out practical work focusing on BSP, Firmware, Bootloader, and Embedded Linux optimization.

  • Former) Intel Automotive, Senior Software Engineer (Automotive Chip BSP, on-device AI)

  • Former) LG Electronics CTO, Senior Research Engineer (Mobile/AI Chip BSP)

  • Current) Leader, Corini Rescue Team

 

Practical + Educational Experience

  • Over 6 years of experience in embedded systems lecturing and mentoring

  • Experience in creating technical interview questions and coding tests

  • Conducted numerous project and portfolio mentoring sessions

 

From low-level to AI,
we cover the structures that connect systems.

junior.coder.rescue.team@gmail.com

 

More

Co-instructor

Curriculum

All

84 lectures ∙ (10hr 54min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

15 reviews

5.0

15 reviews

  • dldldmsgml4621님의 프로필 이미지
    dldldmsgml4621

    Reviews 1

    Average Rating 5.0

    Edited

    5

    55% enrolled

    I became interested in embedded systems and took this course to study them, and it was truly helpful in understanding the overall flow! Since the basic concepts were explained slowly, I was able to understand everything very well. Also, it wasn't just about learning code; the process of completing a whole system, from configuring the Linux environment to hardware control, made it much easier to understand. Thanks to this, I already feel a sense of confidence :)

    • jcrt
      Instructor

      Hello. Thank you for your thoughtful review. I am very happy to hear that you have already grasped the overall flow even though you are still in the middle of the course. This course was designed not simply to list features, but as a process of completing a single system, from Linux environment configuration to hardware control. I believe that embedded systems is a field that becomes much more interesting once you start to see the flow. The confidence you feel now will become a great asset in the future. I will be rooting for you to complete the rest of the course. Thank you.

  • hs1608kim8754님의 프로필 이미지
    hs1608kim8754

    Reviews 1

    Average Rating 5.0

    5

    100% enrolled

    It's not easy to find high-quality embedded lectures these days that teach everything step-by-step from the basics, so this was great to revisit as I started an embedded project again after a long time. I think it would be very helpful for students to listen to these days. haha

    • jcrt
      Instructor

      Hello. Thank you for your valuable review. As you mentioned, I believe there aren't many courses that cover the basics step-by-step. This course was designed so that you can return to it even while working on projects to check your fundamentals. Ultimately, I believe the basics are the most important aspect of the embedded field. Nothing would be more rewarding than knowing this helps students. Thank you for your kind words.

  • daag21701376님의 프로필 이미지
    daag21701376

    Reviews 1

    Average Rating 5.0

    5

    100% enrolled

    I took this course as a beginner in the embedded field, and it was a huge help because it guided me through everything from the most basic development environment setup to a systematic curriculum. I believe the greatest strength of this course is that it doesn't stop at just learning theory; it combines practice, allowing me to internalize what I understood mentally by implementing it directly into code. In particular, it was a truly beneficial experience to solidify vague concepts by manually controlling essential low-speed interfaces one by one, such as GPIO, UART, PWM, I2C, and SPI. Thank you for the great lecture.

    • jcrt
      Instructor

      Hello. Thank you for the valuable review you left after completing the course. I am glad to hear that it helped you find your direction at the starting point. This course was not just about explaining simple functions, but focused on grasping the flow of understanding a single system. I believe that now, having completed the course, is the real beginning. I will be rooting for you to naturally expand into deeper stages upon this foundation. Thank you.

  • kmhuh1515155686님의 프로필 이미지
    kmhuh1515155686

    Reviews 1

    Average Rating 5.0

    5

    100% enrolled

    I recently started a project, but since it was in a field I had never tried before, I felt quite lost. That was when I discovered this course, and I loved that it covered the relevant content. Furthermore, by explaining everything down to the smallest detail, it helped relieve the frustration I felt from the difficulties of development. Thank you so much for providing such a great lecture.

    • jcrt
      Instructor

      Hello. Thank you for your valuable review. I believe that starting a project in an unfamiliar field can feel quite overwhelming. I am glad to hear that this lecture helped alleviate some of that frustration. This course focuses on addressing the actual challenges you encounter, guiding you through everything from environment setup to detailed configurations step-by-step. It will be helpful to refer back to it as you continue with your project. I will be rooting for your future development journey. Thank you.

  • balamand184975님의 프로필 이미지
    balamand184975

    Reviews 1

    Average Rating 5.0

    5

    21% enrolled

    I frequently hit a wall regarding "the basics" that couldn't be solved by Googling alone. I often felt like giving up, especially when getting stuck right from the environment setup, but this lecture was incredibly reassuring as it covered everything from tool installation to the minor setting values used in practice. Instead of just mindlessly copying code, the clear explanations on "why we should use this library" have enabled me to establish structures with my own logic when writing code myself.

    • jcrt
      Instructor

      Hello. Thank you for your in-depth review. As you mentioned, I believe embedded systems is a field where many people get stuck on the "basics" and "environment setup." That is why I focused on explaining why we use certain tools and why we design structures in a specific way, rather than just having you follow along and type code. The fact that you are now able to establish structures with your own logic was the biggest goal of this course. I will continue to provide lectures that help you build a solid foundation. Thank you.

Similar courses

Explore other courses in the same field!