[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72862":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":10,"languages":10,"totalLinesOfCode":10,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":41,"discoverSource":42},72862,"Embedded-Engineering-Roadmap","m3y54m\u002FEmbedded-Engineering-Roadmap","m3y54m","Comprehensive roadmap for aspiring Embedded Systems Engineers, featuring a curated list of learning resources","",null,11810,1203,237,2,0,59,193,475,177,119.24,"Creative Commons Attribution Share Alike 4.0 International",false,"master",true,[26,27,28,29,30,31,32,33,34,35,36,37],"electronics","electronics-engineering","embedded","embedded-developer","embedded-engineer","embedded-software","embedded-systems","firmware","firmware-engineer","hardware","roadmap","software-engineer","2026-06-12 04:01:07","# Embedded Systems Engineering Roadmap\r\n\r\n[![GitHub Repo stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap?style=plastic)](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Fstargazers)\r\n[![GitHub forks](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap?style=plastic)](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Fforks)\r\n[![GitHub watchers](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fwatchers\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap?style=plastic)](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Fwatchers)\r\n[![GitHub contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap?style=plastic)](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Fgraphs\u002Fcontributors)\r\n[![GitHub tag (with filter)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Ftag\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap?style=plastic&label=latest)](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Freleases\u002Flatest)\r\n[![GitHub release (by tag)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Flatest\u002Ftotal?style=plastic)](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Freleases\u002Flatest)\r\n[![GitHub all releases](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Ftotal?style=plastic&label=total%20downloads)](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Freleases)\r\n\r\nThis roadmap is designed to help beginners aspiring to build a career as an **Embedded Engineer\u002FDeveloper**, as well as assist current practitioners in expanding their skills.\r\n\r\nEmbedded engineering demands a solid understanding of hardware functionality as well as software development and programming skills. If you really want to pursue this career you must be highly motivated and passionate about it. As the well-known saying goes, \"Hardware is hard!\". But don't panic and be patient for the challenges you may encounter along this exciting journey. By dedicating enough time and effort practicing and doing projects you will soon find yourself as a real embedded engineer! 😀\r\n\r\n## ❓ What is an Embedded System?\r\n\r\n▶️ [ISO\u002FIEC\u002FIEEE 24765 Standard:](https:\u002F\u002Fwww.iso.org\u002Fobp\u002Fui\u002Fen\u002F#iso:std:iso-iec-ieee:24765:ed-2:v1:en)\r\n\r\n> **computer system** that is **part of a larger system** and **performs some of the requirements of that system**. For example, a computer system\r\nused in an aircraft or rapid transit system.\r\n>\r\n> The hardware and software of an embedded system are usually **minimized** and **optimized** for **specific functions**. The embedded system includes at least one microcontroller, microprocessor or digital signal processor. The embedded system designed to **optimize reliability, cost, size and power saving for applications**.\r\n\r\n▶️ [\"Making Embedded Systems\" Book:](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fmaking-embedded-systems\u002F9781449308889\u002F)\r\n\r\n> An embedded system is a **computerized system** that is **purpose built for its application**.\r\n\r\n▶️ [\"Computer Organization and Embedded Systems\" Book:](https:\u002F\u002Fa.co\u002Fd\u002F2lt4Svf)\r\n\r\n> A **physical system** that employs **computer control** for a **specific purpose**, rather than for general-purpose computation, is referred to as an embedded system.\r\n\r\n▶️ [Analog Devices Glossary:](https:\u002F\u002Fwww.analog.com\u002Fen\u002Fdesign-center\u002Fglossary\u002Fembedded-system.html)\r\n\r\n> An embedded system is a system in which the **computer** (generally a microcontroller or microprocessor) is included **as an integral part of the system**.\r\n>\r\n> Often, the computer is **relatively invisible to the user**, without obvious applications, files, or operating systems. Examples of products with invisible embedded systems are the controller that runs a microwave oven or the engine control system of a modern automobile.\r\n\r\n▶️ [Embedded Systems Glossary:](https:\u002F\u002Fbarrgroup.com\u002Fembedded-systems\u002Fglossary-e)\r\n\r\n> A combination of **computer hardware and software**, and perhaps **additional mechanical or other parts**, designed to perform a **dedicated function**.\r\n>\r\n> In some cases, embedded systems are **part of a larger system** or product, as in the case of an antilock braking system in a car.\r\n\r\n## 🗺️ The Roadmap\r\n\r\n![Embedded Systems Engineering Roadmap](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FEmbedded-Engineering-Roadmap\u002Freleases\u002Flatest\u002Fdownload\u002FEmbedded-Engineering-Roadmap.png)\r\n\r\nThe embedded systems engineering roadmap is structured into three fundamental areas: **SOFTWARE**, **HARDWARE**, and **SOFT SKILLS**.\r\n\r\nWhile the intersection of hardware and software is prevalent in embedded systems, specific job titles tend to emphasize one aspect over the other. For instance, roles like \"Embedded Software Engineer\u002FDeveloper,\" \"Firmware Engineer\u002FDeveloper,\" and \"Embedded Linux Engineer\u002FDeveloper\" predominantly focus on software development. In contrast, positions such as \"Embedded Hardware Engineer\" and \"Hardware Design Engineer\" primarily deal with hardware design and electronics. Moreover, there are roles like \"Embedded Systems Engineer\" that necessitate a comprehensive understanding of both hardware and software.\r\n\r\nIt's crucial to note that each company in the embedded industry may have unique requirements for a given job title. Therefore, it's essential to tailor your focus based on your career aspirations. If you're seeking an embedded software position, prioritize the software-related skills outlined in the roadmap. Conversely, if you're interested in an embedded hardware job, concentrate on hardware skills and dedicate more time to learning electronics.\r\n\r\nThe roadmap provides a comprehensive guide to the essential topics for a typical \"Embedded Systems Engineer\" role. By delving into both software and hardware aspects, you can develop the necessary skills to thrive in this dynamic field. However, if you have a clear preference for software or hardware, you can tailor your learning path accordingly.\r\n\r\n🔗 For more information about the history behind this roadmap, read this article: [Embedded Systems Roadmap: Bridging the Gap](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fembedded-systems-roadmap-bridging-the-gap)\r\n\r\n\u003C!-- markdownlint-disable MD028 -->\r\n\r\n> [!NOTE]\r\n> **Remember that the importance of individual software and hardware skills can differ depending on the specific requirements of the company and the job role.**\r\n\r\n> [!TIP]\r\n> To differentiate between the types of learning resources and the quality of their content, specific symbols are used before each item.\r\n>\r\n> **Resource types:**\r\n>\r\n> - 📘 : Books\r\n> - 🎞️ : Videos\r\n> - 📝 : Write-ups, articles, and blog posts\r\n> - 🔗 : Other links that do not fit into any of the above categories\r\n>\r\n> **Content quality symbols:**\r\n>\r\n> - 👶 : Easy-to-understand and beginner-friendly resources. Refer to them if you do not have prior knowledge in a topic.\r\n> - 💎 : Well-known references that have truly invaluable and comprehensive content. Refer to them if you want to deepen your understanding of a topic.\r\n\r\n\u003C!-- markdownlint-enable MD028 -->\r\n\r\n> [!IMPORTANT]  \r\n> **This repository is not affiliated with or financially supported by any content creator, publisher, or organization. We do not endorse or recommend any specific paid resources. Both free and paid resources are included to provide a range of options, allowing you to choose what best suits your needs and preferences.**\r\n\r\n## 😕 Don't Know Where to Start!\r\n\r\n**If you feel overwhelmed by the extensive list of topics in the roadmap, you're not alone. Before delving too deeply, let's ease into it with some simple starter projects. Learning embedded systems engineering takes time and effort. Don't get discouraged if you don't understand something right away. Keep practicing and you will eventually get there.**\r\n\r\n### ⚒️ Projects\r\n\r\nEngaging in hands-on projects is the most effective approach to learning. Rather than solely relying on theoretical knowledge from books or articles. Undertaking projects allows for practical learning experiences. Even a seemingly basic project has the potential to teach you more than hours of aimless reading. You can refer to books, articles, and courses when faced with difficulties in understanding the problems in real-world projects.\r\n\r\nDon't try to build a complex project right away. Start with small, manageable projects to get your feet wet.\r\n\r\n- [🔗 Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https:\u002F\u002Frandomnerdtutorials.com\u002F)\r\n- [🔗 Last Minute Engineers](https:\u002F\u002Flastminuteengineers.com\u002F)\r\n- [🔗 51 STM32 Projects & Tutorials for Beginners and Up - Hackster.io](https:\u002F\u002Fwww.hackster.io\u002Fstm32\u002Fprojects)\r\n- [🔗 STM32 (STM32F103C8) Projects & Tutorials](https:\u002F\u002Fcircuitdigest.com\u002Fstm32-projects-and-tutorials)\r\n- [🔗 ElectronicWings Projects](https:\u002F\u002Fwww.electronicwings.com\u002Fprojects)\r\n- [🔗 STM32 Firmware - Phil’s Lab (YouTube Playlist)](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLXSyc11qLa1a4Tqbz228dPZfMrs-KRpzA)\r\n- [🔗 Raspberry Pi Based Embedded Project Ideas](https:\u002F\u002Fwww.rs-online.com\u002Fdesignspark\u002Fraspberry-pi-based-embedded-project-ideas)\r\n- [🔗 Embedded Linux On ARM | Projects](https:\u002F\u002Fwww.emertxe.com\u002Fembedded-systems\u002Fembedded-linux-on-arm\u002Felarm-projects\u002F)\r\n- [🔗 Embedded System Project Series - Artful Bytes (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLS_iNJJVTtiRV0DZRDcTHnvAuDrKGPN40)\r\n- [🔗 ESP32 ESP-IDF Tutorials & IoT Protocols](https:\u002F\u002Fesp32tutorials.com\u002F)\r\n- [🔗 flip-card](https:\u002F\u002Fgithub.com\u002FNicholas-L-Johnson\u002Fflip-card)\r\n\r\n### 🔎 Search and Ask!\r\n\r\nUse search engines to find the answers to your questions.\r\n\r\n- [🔗 Google](https:\u002F\u002Fwww.google.com)\r\n- [🔗 Bing](https:\u002F\u002Fwww.bing.com\u002F)\r\n- [🔗 DuckDuckGo](https:\u002F\u002Fduckduckgo.com\u002F)\r\n\r\nIf you can't find what you're looking for using search engines, AI chatbots can also provide assistance. Keep in mind that AI may provide incorrect answers in some cases. It's best to confirm any answers with more reliable references.\r\n\r\n- [🔗 DuckDuckGo AI Chat](https:\u002F\u002Fduckduckgo.com\u002F?q=DuckDuckGo&ia=chat)\r\n- [🔗 Microsoft Copilot](https:\u002F\u002Fcopilot.microsoft.com)\r\n- [🔗 Google Gemini](https:\u002F\u002Fgemini.google.com)\r\n- [🔗 ChatGPT](https:\u002F\u002Fchat.openai.com)\r\n- [🔗 Claude AI](https:\u002F\u002Fclaude.ai\u002Fchats)\r\n- [🔗 Poe - Fast, Helpful AI Chat](https:\u002F\u002Fpoe.com)\r\n\r\nIf you have reservations about relying on AI advice alone, you can also ask your questions from real people:\r\n\r\n- [🔗 Electrical Engineering Stack Exchange](https:\u002F\u002Felectronics.stackexchange.com\u002F)\r\n- [🔗 Reddit · r\u002Fembedded](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fembedded\u002F)\r\n\r\n### ✳️ Career Development\r\n\r\nAs an embedded systems engineer, it's essential to stay up-to-date with industry trends, best practices, and new technologies to advance your career. Here are some resources to help you achieve your career goals:\r\n\r\n- [🔗 EmbeddedJobs](https:\u002F\u002Fembedded.jobs\u002Fjobs) - A job board focused exclusively on Embedded Systems job market.\r\n\r\n### 🎥 Courses and YouTube Contents\r\n\r\nYou may have heard that YouTube is a university. And it's true - there is an extensive amount of invaluable free content on embedded systems available on YouTube. You'll also find some excellent free courses through Coursera and EdX. Additionally, Udemy offers some high-quality paid course options.\r\n\r\n- [🎞️ DigiKey (YouTube Channel)](https:\u002F\u002Fwww.youtube.com\u002F@digikey)\r\n- [🎞️ Coursera - Introduction to Embedded Systems Software and Development Environments](https:\u002F\u002Fwww.coursera.org\u002Flearn\u002Fintroduction-embedded-systems)\r\n- [🎞️ Coursera - Embedded Software and Hardware Architecture](https:\u002F\u002Fwww.coursera.org\u002Flearn\u002Fembedded-software-hardware)\r\n- [🎞️ Coursera - ARM Cortex STM32 Deep Dive: Mastering Embedded Systems](https:\u002F\u002Fwww.coursera.org\u002Flearn\u002Farm-cortex-stm32-deep-dive-mastering-embedded-systems)\r\n- [🎞️ Fastbit Embedded Brain Academy](https:\u002F\u002Ffastbitlab.com\u002F)\r\n- [🎞️ Modern Embedded Systems Programming Course (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM)\r\n- [🎞️ element14 presents (YouTube Channel)](https:\u002F\u002Fwww.youtube.com\u002F@element14presents)\r\n- [🎞️ Ben Eater (YouTube Channel)](https:\u002F\u002Fwww.youtube.com\u002F@BenEater)\r\n- [🎞️ Phil’s Lab (YouTube Channel)](https:\u002F\u002Fwww.youtube.com\u002F@PhilsLab)\r\n- [🎞️ Embedded Systems - Jacob Sorber (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL9IEJIKnBJjEcPAz6fss-Hx0TLytCOMVC)\r\n- [🎞️ edX - Embedded Systems - Shape The World: Microcontroller Input\u002FOutput](https:\u002F\u002Flearning.edx.org\u002Fcourse\u002Fcourse-v1:UTAustinX+UT.6.10x+3T2022\u002Fhome)\r\n- [🎞️ edX - Embedded Systems - Shape The World: Multi-Threaded Interfacing](https:\u002F\u002Fwww.edx.org\u002Flearn\u002Fcomputer-programming\u002Fthe-university-of-texas-at-austin-embedded-systems-shape-the-world-multi-threaded-in)\r\n- [🎞️ Low Byte Productions](https:\u002F\u002Fwww.youtube.com\u002F@lowbyteproductions)\r\n\r\n### 🕹️ Arduino\r\n\r\nIf you do not have any background in programming the embedded systems, Arduino boards and libraries are the best choice for you to start and learn the basics. Just keep in mind that most of the Arduino libraries are developed for learning purposes and are not optimized to be used in industry.\r\n\r\nAdditionally, the [Arduino Core](https:\u002F\u002Fgithub.com\u002Farduino\u002FArduinoCore-API) takes care of most of the low-level hardware-associated operations that you, as an embedded engineer, should be able to handle yourself or at least have a clear understanding of. If you want to become a professional embedded developer, you should be able to effectively use industry-standard APIs and SDKs provided and approved by microcontroller vendors, such as CMSIS for ARM Cortex-M microcontrollers, STM32Cube for STM32, ESP-IDF for Espressif microcontrollers, etc.\r\n\r\n- [🔗 Getting Started with Arduino](https:\u002F\u002Fdocs.arduino.cc\u002Flearn\u002Fstarting-guide\u002Fgetting-started-arduino)\r\n- [🔗 ArduinoMap (Open-source Arduino course)](https:\u002F\u002Farduinomap.me\u002F)\r\n- [🎞️ All New Arduino R4 WiFi LESSONS for Absolute Beginners (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLGs0VKk2DiYyn0wN335MXpbi3PRJTMmex)\r\n- [🎞️ New Arduino Tutorials (YouTube Playlist)](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP)\r\n- [🎞️ Arduino in a commercial product?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=c5LzsqeSCAc)\r\n- [🎞️ Arduino Project to Product (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLEBQazB0HUyQd6Fsf5NQ75M9llbi1_j_8)\r\n\r\n### 👨‍🏫 Educational Websites\r\n\r\n- [🔗 DeepBlueMbedded](https:\u002F\u002Fdeepbluembedded.com\u002F)\r\n- [🔗 Digital Electronics Deeds](https:\u002F\u002Fwww.digitalelectronicsdeeds.com\u002Findex.html)\r\n- [🔗💎 Interrupt Blog by Memfault](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002F)\r\n- [🔗💎 EmbeddedRelated.com](https:\u002F\u002Fwww.embeddedrelated.com\u002F)\r\n- [🔗 ElectronicWings - Hardware Developers Community](https:\u002F\u002Fwww.electronicwings.com\u002F)\r\n- [🔗 EduTecnica (Italian)](https:\u002F\u002Fwww.edutecnica.it\u002F)\r\n- [🔗 Microchip University](https:\u002F\u002Fmu.microchip.com\u002F)\r\n- [🔗 Nordic Developer Academy](https:\u002F\u002Facademy.nordicsemi.com\u002F)\r\n- [🔗 Electronics Tutorials](https:\u002F\u002Fwww.electronics-tutorials.ws)\r\n- [🔗 SparkFun Learn: Learn at SparkFun Electronics](https:\u002F\u002Flearn.sparkfun.com\u002F)\r\n- [🔗 Adafruit Learning System](https:\u002F\u002Flearn.adafruit.com\u002F)\r\n- [🔗 STM32 World](https:\u002F\u002Fstm32world.com)\r\n- [🔗 ControllersTech](https:\u002F\u002Fcontrollerstech.com\u002F)\r\n- [🔗 Embedded Systems News - CNX Software](https:\u002F\u002Fwww.cnx-software.com\u002F)\r\n- [🔗 News - PioLabs](https:\u002F\u002Fpiolabs.com\u002F)\r\n\r\n### 🗺️ Other Helpful Roadmaps\r\n\r\n- [🔗 Embedded Artistry Beginners Roadmap](https:\u002F\u002Fembeddedartistry.com\u002Fbeginners\u002F)\r\n- [🔗 Embedded Systems Skill Tree](https:\u002F\u002Fgithub.com\u002Fsjpiper145\u002FMakerSkillTree\u002Ftree\u002Fmain\u002FEmbedded%20Systems%20Skill%20Tree)\r\n- [🔗 PCB Design Skill Tree](https:\u002F\u002Fgithub.com\u002Fsjpiper145\u002FMakerSkillTree\u002Ftree\u002Fmain\u002FPCB%20Design%20Skill%20Tree)\r\n- [🔗 FPGA \u002F ASIC Engineering Roadmap](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FFPGA-ASIC-Roadmap)\r\n\r\n### 🛠️ IDEs\r\n\r\n- [🔗 Keil MDK & µVision](https:\u002F\u002Fwww.keil.com\u002F)\r\n- [🔗 IAR Embedded Workbench](https:\u002F\u002Fwww.iar.com)\r\n- [🔗 STM32CubeIDE](https:\u002F\u002Fwww.st.com\u002Fen\u002Fdevelopment-tools\u002Fstm32cubeide.html)\r\n- [🔗 Microchip Studio for AVR® and SAM Devices](https:\u002F\u002Fwww.microchip.com\u002Fen-us\u002Ftools-resources\u002Fdevelop\u002Fmicrochip-studio)\r\n- [🔗 MPLAB® X IDE](https:\u002F\u002Fwww.microchip.com\u002Fen-us\u002Ftools-resources\u002Fdevelop\u002Fmplab-x-ide)\r\n- [🔗 MCUXpresso IDE](https:\u002F\u002Fwww.nxp.com\u002Fdesign\u002Fsoftware\u002Fdevelopment-software\u002Fmcuxpresso-software-and-tools-\u002Fmcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE)\r\n\r\n### 👨‍💻 VS Code Extensions\r\n\r\n- [🔗 Cortex-Debug](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=marus25.cortex-debug)\r\n- [🔗 STM32 VS Code Extension](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=stmicroelectronics.stm32-vscode-extension)\r\n- [🔗 Espressif IDF](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=espressif.esp-idf-extension)\r\n- [🔗 MCUXpresso for VS Code](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=NXPSemiconductors.mcuxpresso)\r\n\r\n### 🐜 PlatformIO\r\n\r\nPlatformIO is a cross-platform, cross-architecture, multiple framework, professional tool for embedded systems engineers and for software developers who write applications for embedded products.\r\n\r\n- [🔗 PlatformIO - A professional collaborative platform for embedded development](https:\u002F\u002Fplatformio.org\u002F)\r\n\r\nPlatformIO is not yet extensively adopted in industrial and large-scale projects, however, it is an excellent choice for individuals working on smaller projects. This is because it greatly reduces the need to install frameworks and setup build and debug tools, allowing you to concentrate on programming.\r\n\r\n## 📚 Learning Resources\r\n\r\n> [!WARNING]  \r\n> It is not necessary to read all the books, articles, or watch all the videos you see here. If you try to do so, you will finally get tired and disappointed. You cannot study all the available content here in a reasonable time because it may take years. It is important to study enough to have at least a basic understanding of the required topics. Of course, the more time you dedicate to studying and doing projects, the more profound your knowledge and expertise will become.\r\n>\r\n> Some of the resources mentioned here will just be used as references. Refer to them only when you need them.\r\n_________________\r\n\r\n### ✳️ Soft Skills\r\n\r\nSimilar to other professions, embedded engineers require soft skills that can't be solely obtained from reading or watching videos. These skills are cultivated through interactions and tackling various work obstacles. Improving soft skills is not a one-size-fits-all approach. It will vary based on one's individual traits and requires self-awareness of your strengths and areas for growth. Enhancing these skills takes time and effort.\r\n\r\n- [📝 Soft Skills For Embedded Systems Software Developers](https:\u002F\u002Fwww.embeddedrelated.com\u002Fshowarticle\u002F1470.php)\r\n- [📝 10 Skills Every Embedded Engineer Should Have](https:\u002F\u002Fmedium.com\u002F@lanceharvieruntime\u002F10-skills-every-embedded-engineer-should-have-dcb867095b91)\r\n\r\n_________________\r\n\r\n### ✳️ Electronics\r\n\r\n#### 🔵 Basic Calculus\r\n\r\n- [🎞️ Khan Academy - Calculus 1](https:\u002F\u002Fwww.khanacademy.org\u002Fmath\u002Fcalculus-1)\r\n- [📘👶 Calculus For Dummies - Mark Ryan](https:\u002F\u002Fa.co\u002Fd\u002FcyvZqE1)\r\n- [📘💎 Thomas' Calculus](https:\u002F\u002Fa.co\u002Fd\u002FgFcCC37)\r\n\r\n#### 🔵 Principles of Electric Circuits\r\n\r\n- [🔗👶 Lessons in Electric Circuits (All About Circuits)](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftextbook\u002F)\r\n- [🔗👶💎 Electronics Tutorials](https:\u002F\u002Fwww.electronics-tutorials.ws)\r\n- [📘👶💎 Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku](https:\u002F\u002Fwww.amazon.com\u002Fdp\u002F1260226409?ref_=cm_sw_r_cp_ud_dp_Q11YHXNY2BK530RQZC4S)\r\n- [📘👶💎 Principles of Electric Circuits: Conventional Current Version -  Thomas L Floyd, David M. Buchla](https:\u002F\u002Fa.co\u002Fd\u002F32T2t2X)\r\n- [🎞️💎 Basic Circuit Theory I (By Prof. Razavi) (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL9KyzjPFbwH37w22z-UHVEt37pdJHjZ7x)\r\n\r\n#### 🔵 Electronics Fundamentals\r\n\r\n- [🔗👶💎 Build Electronic Circuits - Øyvind Nydal Dahl](https:\u002F\u002Fwww.build-electronic-circuits.com\u002F)\r\n- [🎞️👶 Electronic Basics - GreatScott! (YouTube Playlist)](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLAROrg3NQn7cyu01HpOv5BWo217XWBZu0)\r\n- [📘👶 Make: Electronics: Learning by Discovery - Charles Platt](https:\u002F\u002Fa.co\u002Fd\u002FfbRoM1R)\r\n- [📘👶💎 Electronic Devices: Conventional Current Version - Thomas Floyd, David Buchla, Steven Wetterling](https:\u002F\u002Fa.co\u002Fd\u002F1dsS0vx)\r\n- [📘👶💎 Electronics Fundamentals: Circuits, Devices & Applications - Thomas L Floyd, David M. Buchla, Gary D. Snyder](https:\u002F\u002Fa.co\u002Fd\u002F4Ye5m8h)\r\n- [📘👶 Practical Electronics for Inventors - Paul Scherz, Simon Monk](https:\u002F\u002Fa.co\u002Fd\u002F1QfSN8j)\r\n- [📘💎 The Art of Electronics -  Paul Horowitz, Winfield Hill](https:\u002F\u002Fartofelectronics.net\u002F)\r\n- [📝 Here’s a Quick Way to Know about Major Electronic Components](https:\u002F\u002Fwww.elprocus.com\u002Fmajor-electronic-components\u002F)\r\n- [📘 Encyclopedia of Electronic Components - Charles Platt](https:\u002F\u002Fa.co\u002Fd\u002F83cSiU7)\r\n\r\n#### 🔵 Digital Design\r\n\r\n- [🔗👶 Tiny Tapeout > Digital Design Guide](https:\u002F\u002Ftinytapeout.com\u002Fdigital_design\u002F)\r\n- [📘💎 Digital Design - Morris Mano, Michael Ciletti](https:\u002F\u002Fa.co\u002Fd\u002Fc3tBaoc)\r\n- [📘👶💎 Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https:\u002F\u002Fa.co\u002Fd\u002F4otoVvI)\r\n- [📘👶💎 Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https:\u002F\u002Fa.co\u002Fd\u002F61l7Jtb)\r\n- [📘👶 Digital Fundamentals - Thomas L. Floyd](https:\u002F\u002Fa.co\u002Fd\u002F2lgJKNX)\r\n\r\n#### 🔵 Computer Architecture\r\n\r\nComputer architecture is the backbone of embedded systems, governing the hardware and software interactions. Embedded developers need a grasp of computer architecture to design, develop, and debug embedded software effectively. Expertise in ARM and RISC-V, two prevalent instruction set architectures (ISAs) in embedded systems, is paramount for embedded developers. ARM is the dominant ISA, while RISC-V's open-source nature and flexibility are gaining traction.\r\n\r\n- [📘👶💎 Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https:\u002F\u002Fa.co\u002Fd\u002F8YPUXG7)\r\n- [📘👶💎 Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https:\u002F\u002Fa.co\u002Fd\u002F4otoVvI)\r\n- [📘👶💎 Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https:\u002F\u002Fa.co\u002Fd\u002F61l7Jtb)\r\n- [📘👶 The Elements of Computing Systems - Noam Nisan, Shimon Schocken](https:\u002F\u002Fa.co\u002Fd\u002FcX6jkLl)\r\n- [📘 Computer Organization and Embedded Systems - Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian](https:\u002F\u002Fa.co\u002Fd\u002F2lt4Svf)\r\n- [📘 Embedded Systems Architecture - Tammy Noergaard](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fembedded-systems-architecture\u002F9780123821966\u002F)\r\n- [📘 Embedded Systems Architecture - Daniele Lacamera](https:\u002F\u002Fwww.packtpub.com\u002Fproduct\u002Fembedded-systems-architecture-second-edition\u002F9781803239545)\r\n- [📘 The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors - Joseph Yiu](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fthe-definitive-guide\u002F9780128032787\u002F)\r\n- [📘 The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors - Joseph Yiu](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fthe-definitive-guide\u002F9780124080829\u002F)\r\n- [🔗 Build an 8-bit computer from scratch](https:\u002F\u002Feater.net\u002F8bit\u002F)\r\n\r\n_________________\r\n\r\n### ✳️ Using Test Equipment\r\n\r\nEmbedded systems often require specialized test equipment to verify their functionality and performance. This equipment includes multimeters, oscilloscopes, logic analyzers, function generators, power supplies, and other tools that allow engineers to measure signals, inject stimuli, and monitor the behavior of embedded systems.\r\n\r\n#### 🔵 Multimeter\r\n\r\n- [🎞️👶 Learn How to Use a Multimeter!](https:\u002F\u002Fyoutu.be\u002F4lAyzRxsbDc)\r\n- [📝👶 How to Use a Multimeter](https:\u002F\u002Flearn.sparkfun.com\u002Ftutorials\u002Fhow-to-use-a-multimeter\u002Fall)\r\n\r\n#### 🔵 Logic \u002F Protocol Analyzer\r\n\r\n- [🎞️ Instrument Basics: Logic Analyzer](https:\u002F\u002Fyoutu.be\u002Fu1DYs2I-_lU)\r\n\r\n#### 🔵 Oscilloscope\r\n\r\n- [🎞️👶 What’s an OSCILLOSCOPE?](https:\u002F\u002Fyoutu.be\u002FDgYGRtkd9Vs)\r\n- [🎞️👶 How to Use an Oscilloscope](https:\u002F\u002Fyoutu.be\u002Fu4zyptPLlJI)\r\n- [🎞️👶 How to use an oscilloscope \u002F What is an oscilloscope \u002F Oscilloscope tutorial](https:\u002F\u002Fyoutu.be\u002FCzY2abWCVTY)\r\n- [🎞️ Understanding EMI Debugging with Oscilloscopes](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=x1rn5YNLmVw)\r\n\r\n_________________\r\n\r\n### ✳️ Prototyping Skills\r\n\r\nWhile hardware design and prototyping are primarily the responsibility of electronic hardware design engineers, embedded software engineers can benefit from a basic understanding of these concepts. This knowledge can be instrumental in identifying and resolving hardware-related issues during embedded system debugging. By having a grasp of hardware principles, embedded software engineers can effectively pinpoint the root causes of problems, leading to quicker and more efficient troubleshooting.\r\n\r\n#### 🔵 Breadboarding\r\n\r\nBreadboarding is a hands-on approach to prototyping circuits, providing a versatile platform for experimentation and circuit design. Embedded systems often utilize breadboards for their ease of use, flexibility, and cost-effectiveness. By connecting components on a breadboard, embedded systems developers can quickly test and refine their designs without the need for permanent soldering. This allows for rapid iterations and efficient debugging, making breadboarding an invaluable tool for embedded system development.\r\n\r\n- [🎞️👶 Everything You Need to Know about Breadboards](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=mE33WpRWrXs)\r\n- [🎞️👶 How to Use a Breadboard](https:\u002F\u002Fyoutu.be\u002F6WReFkfrUIk)\r\n\r\n#### 🔵 Hardware Design Basics\r\n\r\n- [🎞️👶💎 Hardware Design - Phil’s Lab (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLXSyc11qLa1YhVCZ5xWPuPsE5MkgEy5TF)\r\n- [🎞️ Electronic Circuit Design - IFE - TU Graz (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLLpZ1DoEuR9tbV8r8bMSI94znm6pRB905)\r\n- [🎞️ Microcontroller-Based Hardware Design With Altium Designer (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL3aaAq2OJU5HcbClqrOhqBDozF7HmxV-s)\r\n\r\n#### 🔵 PCB Design \u002F EMC\r\n\r\n- [🎞️💎 Altium Academy YouTube Channel](https:\u002F\u002Fwww.youtube.com\u002F@AltiumAcademy)\r\n- [🎞️💎 Robert Feranec YouTube Channel](https:\u002F\u002Fwww.youtube.com\u002F@RobertFeranec)\r\n- [🎞️👶 Altium Tutorials for Beginners - Robert Feranec (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLXvLToQzgzdduBaD4horowdWgcG5uGUW4)\r\n- [🎞️👶 Create PCBs for Rapid Prototyping - DigiKey (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLEBQazB0HUyRVK1RpHIjyjuTxn5srz6XM)\r\n- [🎞️👶💎 PCB Design for Beginners - Altium Academy (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL3aaAq2OJU5EsYtNwTPHNO3RHNJN34FbO)\r\n- [🎞️ How to Make a Raspberry Pi Compute Module 4 Carrier Board - DigiKey (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLEBQazB0HUyRwjr761b-MLNEu8FA8WKSG)\r\n- [🎞️💎 How To Learn PCB Design (My Thoughts, Journey, and Resources) - Phil's Lab #87](https:\u002F\u002Fyoutu.be\u002FaODkA2mrimQ)\r\n- [🎞️👶 KiCad 6 STM32 PCB Design Full Tutorial - Phil's Lab #65](https:\u002F\u002Fyoutu.be\u002FaVUqaB0IMh4)\r\n- [🎞️👶 Intro to KiCad - DigiKey (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vaCVh2SAZY4&list=PLEBQazB0HUyR24ckSZ5u05TZHV9khgA1O)\r\n- [🎞️💎 PCB Design for EMI & SI - Phil's Lab #64](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VtzPL8wQ8-E)\r\n- [🎞️💎 PCB Design for Advanced Users (YouTube Playlist)](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PL3aaAq2OJU5EWfYT_Z93tc9pBF_Sidba_)\r\n- [🎞️💎 PCB Knowledge [PCB Production Tips By PCBWay] (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLzxdr3n97eVtHuh7gnDzMubuO836kvfu7)\r\n- [🎞️💎Udemy – High-Speed Board Design Course System On Module -EsteemPCB](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fhighspeed_board_design_course)\r\n- [🎞️💎Udemy – Advanced Hardware and PCB Design Masterclass 2022](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fadvanced-hardware-design-course)\r\n- [🎞️💎 9 Simple Tricks to Improve EMC \u002F EMI on Your Boards - Practical examples (with Min Zhang)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Lf51sx6sC0I)\r\n- [🎞️💎 Many EMC Tips to Help You Design Better PCB Boards (with Keith Armstrong)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gHF5JyJF-N4)\r\n- [🔗 LearnEMC - EMC Resources](https:\u002F\u002Flearnemc.com\u002Femc-resources)\r\n- [🔗 A Better Way to Build PCBs - Flux AI](https:\u002F\u002Fwww.flux.ai\u002Fp\u002F)\r\n- [🔗 Monosketch](https:\u002F\u002Fmonosketch.io\u002F)\r\n- [🔗 EasyEDA](https:\u002F\u002Feasyeda.com\u002Fit)\r\n- [🔗 Fritzing](https:\u002F\u002Ffritzing.org\u002F)\r\n- [🔗 Cirkit Designer](https:\u002F\u002Fwww.cirkitstudio.com\u002F)\r\n- [🔗 withdiode](https:\u002F\u002Fwww.withdiode.com\u002F)\r\n\r\n#### 🔵 Soldering \u002F Rework\r\n\r\n- [🎞️👶 How To Solder - Electronics with Becky Stern | Digi-Key Electronics](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sS4v2hIFp9I)\r\n- [🎞️👶 HOW TO SOLDER! (Beginner's Guide)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3jAw41LRBxU)\r\n- [🎞️👶 Soldering Crash Course: Basic Techniques, Tips and Advice!](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6rmErwU5E-k)\r\n- [🎞️ How to Solder Through-Hole Components - Another Teaching Moment | DigiKey Electronics](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DJH7VLGJ4fs)\r\n- [🎞️ How to Solder QFN MLF Package by Hand (Using a Hot Air Rework Station) | Digi-Key Electronics](https:\u002F\u002Fyoutu.be\u002FX3Rc1s6EpSI)\r\n- [🎞️ From Solderless Breadboard to Soldered Circuit - Electronics with Becky Stern | Digi-Key Electronics](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=F9Krq7seV1g)\r\n\r\n_________________\r\n\r\n### ✳️ FPGA Development\r\n\r\nFPGAs (Field-Programmable Gate Arrays) are specialized integrated circuits that can be configured to perform various digital logic functions. They are widely used in embedded systems to achieve high performance, flexibility, and cost-effectiveness. FPGA designers use hardware description languages (HDLs) to create customized circuits that map directly to the FPGA architecture. Since FPGA engineering and verification differ significantly from embedded software development, it stands as a specialized domain within embedded systems.\r\n\r\n- [🔗 FPGA \u002F ASIC Engineering Roadmap](https:\u002F\u002Fgithub.com\u002Fm3y54m\u002FFPGA-ASIC-Roadmap)\r\n- [📝 What are FPGAs?](https:\u002F\u002Fhackaday.io\u002Fproject\u002F27550-the-hobbyists-guide-to-fpgas\u002Flog\u002F68114-what-are-fpgas)\r\n- [📝 FPGA vs. Microcontroller: How to choose the right one for your project](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jblpHUCPQYs)\r\n- [🎞️👶 Introduction to FPGA (YouTube Playlist)](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb)\r\n- [🔗👶 FPGA Fundamentals - Nandland](https:\u002F\u002Fnandland.com\u002Ffpga-101\u002F)\r\n- [🎞️💎 Coursera – FPGA Design for Embedded Systems Specialization](https:\u002F\u002Fwww.coursera.org\u002Fspecializations\u002Ffpga-design)\r\n- [📘💎 A Hands-On Guide to Designing Embedded Systems - Adam Taylor, Dan Binnun, Saket Srivastava](https:\u002F\u002Fwww.amazon.com\u002FHands-Guide-Designing-Embedded-Systems\u002Fdp\u002F1630816833)\r\n\r\n_________________\r\n\r\n### ✳️ Programming Fundamentals\r\n\r\nMastering programming fundamentals and software development principles is essential for a successful embedded design. Embedded systems demand efficient code, optimized data management, reusable design patterns, and effective memory management to function effectively in resource-constrained environments. Embedded developers must possess a strong foundation in these core concepts to create reliable and performant embedded systems.\r\n\r\n#### 🔵 Basic Discrete Mathematics\r\n\r\n- [🎞️ Coursera - Introduction to Discrete Mathematics for Computer Science Specialization](https:\u002F\u002Fwww.coursera.org\u002Fspecializations\u002Fdiscrete-mathematics)\r\n- [📘👶 Open Access Discrete Mathematics Books by LibreTexts](https:\u002F\u002Fmath.libretexts.org\u002FBookshelves\u002FCombinatorics_and_Discrete_Mathematics)\r\n- [📘👶 Essential Discrete Mathematics for computer science by Lewis HARRY., Zax R. ACM DL](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fbook\u002F10.5555\u002F3388468)\r\n- [📘👶 Guide to Discrete Mathematics - Gerard O'Regan, Springer](https:\u002F\u002Flink.springer.com\u002Fbook\u002F10.1007\u002F978-3-030-81588-2)\r\n- [📘💎 Bridge to Abstract Mathematics, AMS](https:\u002F\u002Fbookstore.ams.org\u002Fview?ProductCode=TEXT\u002F22)\r\n\r\n#### 🔵 Algorithms & Data Structures\r\n\r\n- [📘👶💎 Grokking Algorithms - Aditya Y. Bhargava](https:\u002F\u002Fwww.manning.com\u002Fbooks\u002Fgrokking-algorithms)\r\n- [📘💎 Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein](http:\u002F\u002Fmitpress.mit.edu\u002F9780262367509\u002Fintroduction-to-algorithms\u002F)\r\n- [🔗 Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes](https:\u002F\u002Fgithub.com\u002FTheAlgorithms\u002FC)\r\n- [🎞️ Udemy – Embedded Systems State Machines & Data Structures](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fembedded-systems-state-machines-data-structures-like-a-pro\u002F)\r\n- [🔗 Data Structures in C](https:\u002F\u002Fwww.sanfoundry.com\u002Fc-programming-examples-data-structures\u002F)\r\n- [🎞️ Data Structures - Full Course Using C and C++](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=B31LgI4Y4DQ)\r\n- [🔗 Hello Algo](https:\u002F\u002Fwww.hello-algo.com\u002Fen\u002F)\r\n\r\n#### 🔵 Design Patterns\r\n\r\n- [📝 Practical Design Patterns: Opaque Pointers and Objects in C](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fopaque-pointers)\r\n- [📘💎 Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fdesign-patterns-for\u002F9781856177078\u002F)\r\n- [📘💎 Making Embedded Systems: Design Patterns for Great Software - Elecia White](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fmaking-embedded-systems\u002F9781449308889\u002F)\r\n- [🎧💎 Making Embedded Systems: Design Patterns for Great Software - Elecia White (Audio Book)](https:\u002F\u002Fwww.audiobooks.com\u002Faudiobook\u002Fmaking-embedded-systems-design-patterns-for-great-software\u002F814297)\r\n- [🔗 Design Patterns - Refactoring Guru](https:\u002F\u002Frefactoring.guru\u002Fdesign-patterns)\r\n\r\n#### 🔵 State Machines\r\n\r\n- [📝 Programming embedded systems the easy way – with state machines](https:\u002F\u002Fwww.embedded.com\u002Fprogramming-embedded-systems-the-easy-way-with-state-machines\u002F)\r\n- [🎞️💎 State Machines (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLPW8O6W-1chxym7TgIPV9k5E8YJtSBToI)\r\n- [🎞️💎 Event-Driven Programming (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLPW8O6W-1chx8Y7Oq2gOE0NUPXmQxu2Wr)\r\n- [🎞️💎 Udemy - Embedded System Design using UML State Machines](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fembedded-system-design-using-uml-state-machines\u002F)\r\n- [📝 “Input-Driven” vs. Event-Driven State Machines](https:\u002F\u002Fwww.state-machine.com\u002Finput-driven-vs-event-driven-state-machines)\r\n- [📝 State Machines for Event-Driven Systems](https:\u002F\u002Fbarrgroup.com\u002Fembedded-systems\u002Fhow-to\u002Fstate-machines-event-driven-systems)\r\n- [📘 Practical UML Statecharts in C\u002FC++ by Miro Samek](https:\u002F\u002Fwww.amazon.sg\u002FPractical-UML-Statecharts-Event-Driven-Programming\u002Fdp\u002F0750687061)\r\n\r\n#### 🔵 Memory Management\r\n\r\n- [🎞️ Understanding the C runtime memory model](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3F3lp_F2YpQ)\r\n- [🎞️ Pointers and dynamic memory - stack vs heap](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_8-ht2AKyH4)\r\n- [🎞️ Dynamic Memory Allocation | C Programming Tutorial](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=R0qIYWo8igs)\r\n- [🎞️ Dynamic memory allocation in C - malloc calloc realloc free](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=xDVC3wKjS64&t=140s)\r\n- [📝 What is Memory Leak in C\u002FC++? How can we avoid?](https:\u002F\u002Faticleworld.com\u002Fwhat-is-memory-leak-in-c-c-how-can-we-avoid\u002F)\r\n- [📝 Understanding Memory Management in Rust](https:\u002F\u002Fmedium.com\u002Fgeekculture\u002Funderstanding-memory-management-in-rust-a341cfce9807)\r\n- [📝 Memory Management in Python](https:\u002F\u002Frealpython.com\u002Fpython-memory-management\u002F)\r\n\r\n_________________\r\n\r\n### ✳️ Programming Languages\r\n\r\nLow-level languages like C and assembly provide direct hardware access, enabling efficient code optimization for resource-constrained embedded systems. System-level languages like C++ and Rust offer a higher level of abstraction for complex embedded applications, while Python is often employed for testing embedded systems due to its simplicity.\r\n\r\n#### 🔵 C\r\n\r\n- [🎞️👶 Microchip University - Syntax And Structure of C - Simply C](https:\u002F\u002Fmu.microchip.com\u002Fsyntax-and-structure-of-c)\r\n- [🎞️💎 Microchip University - Advanced C Programming](https:\u002F\u002Fmu.microchip.com\u002Fadvanced-c-programming)\r\n- [🎞️💎 Microchip University - Advanced Embedded C Tips, Tricks, and Cautions](https:\u002F\u002Fmu.microchip.com\u002Fadvanced-embedded-c-tips-tricks-and-cautions)\r\n- [🎞️💎 Microchip University - C Programming: Linked List Data Structures](https:\u002F\u002Fmu.microchip.com\u002Fc-programming-linked-list-data-structures)\r\n- [🎞️💎 Microchip University - C Programming Callbacks](https:\u002F\u002Fmu.microchip.com\u002Fc-programming-callbacks)\r\n- [🎞️👶 C Programming for Beginners | Full Course](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ssJY5MDLjlo)\r\n- [🎞️ C Programming Tutorials (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLA1FTfKBAEX4hblYoH6mnq0zsie2w6Wif)\r\n- [📘💎 The C Programming Language -  Brian W. Kernighan, Dennis M. Ritchie](https:\u002F\u002Fwww.amazon.com\u002Fdp\u002F0131103628?ref_=cm_sw_r_cp_ud_dp_KRZ8M1WTXWVG0HMSRBXA)\r\n- [🔗👶 C by Example](https:\u002F\u002Fwww.cbyexample.com\u002F)\r\n- [📘👶 The Little Book of C](https:\u002F\u002Flittle-book-of.github.io\u002Fc\u002Fbooks\u002Fen-US\u002Fbook.html)\r\n- [📘 C How to Program -  Paul Deitel, Harvey Deitel](https:\u002F\u002Fdeitel.com\u002Fc-how-to-program-9-e\u002F)\r\n- [📘 Effective C - An Introduction to Professional C Programming - Robert C. Seacord](https:\u002F\u002Fnostarch.com\u002FEffective_C)\r\n- [📘 Modern C - Jens Gustedt](https:\u002F\u002Fgustedt.gitlabpages.inria.fr\u002Fmodern-c\u002F)\r\n- [🔗 Embedded C Coding Standard](https:\u002F\u002Fbarrgroup.com\u002Fembedded-systems\u002Fbooks\u002Fembedded-c-coding-standard)\r\n- [🔗 newlib C Library Documentation](https:\u002F\u002Fsourceware.org\u002Fnewlib\u002Fdocs.html)\r\n- [🔗 The GNU C Library (glibc)](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Flibc\u002Fdocumentation.html)\r\n- [📝 From Zero to main(): Bare metal C](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fzero-to-main-1)\r\n- [📝 From Zero to main(): Bootstrapping libc with Newlib](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fboostrapping-libc-with-newlib)\r\n- [📝 Introduction to Nintendo DS Programming](https:\u002F\u002Fwww.patater.com\u002Ffiles\u002Fprojects\u002Fmanual\u002Fmanual.html)\r\n- [🎞️👶 Learn C Programming and OOP with Dr. Chuck](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=PaPN51Mm5qQ)\r\n- [📘 Extreme C -  Kamran Amini](https:\u002F\u002Fwww.packtpub.com\u002Ffree-ebook\u002Fextreme-c\u002F9781789343625)\r\n- [🎞️👶 Coursera - C Programming with Linux Specialization](https:\u002F\u002Fwww.coursera.org\u002Fspecializations\u002Fc-programming-linux)\r\n\r\n#### 🔵 C++\r\n\r\n- [📝 Modern C++ in Embedded Development: (Don't Fear) The ++](https:\u002F\u002Fwww.embeddedrelated.com\u002Fshowarticle\u002F1532.php)\r\n- [📝 C++ On Embedded Systems](https:\u002F\u002Fblog.mbedded.ninja\u002Fprogramming\u002Flanguages\u002Fc-plus-plus\u002Fcpp-on-embedded-systems\u002F)\r\n- [📝💎 Bare Metal C++ - Alexey Rybachuk](https:\u002F\u002Farobenko.github.io\u002Fbare_metal_cpp\u002F)\r\n- [🎞️💎 C++ in Constrained Environments - Bjarne Stroustrup - CppCon 2022](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2BuJjaGuInI)\r\n- [🎞️👶 C++ Tutorial for Beginners - Full Course](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vLnPwxZdW4Y)\r\n- [🎞️ C++ by The Cherno (YouTube Playlist)](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb)\r\n- [🎞️👶💎 Udemy - Beginning C++ Programming - From Beginner to Beyond](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fbeginning-c-plus-plus-programming\u002F)\r\n- [🎞️💎 CppCon Conferences - YouTube](https:\u002F\u002Fwww.youtube.com\u002F@CppCon\u002Fplaylists)\r\n- [📘💎 A Tour of C++ (3rd Edition) - Bjarne Stroustrup](https:\u002F\u002Fwww.stroustrup.com\u002Ftour3.html)\r\n- [📘💎 The C++ programming Language (C++11) - Bjarne Stroustrup](https:\u002F\u002Fwww.stroustrup.com\u002F4th.html)\r\n- [📘💎 Programming -- Principles and Practice Using C++ (3rd Edition) - Bjarne Stroustrup](https:\u002F\u002Fwww.stroustrup.com\u002Fprogramming.html)\r\n- [📘💎 Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming - Christopher Kormanyos](https:\u002F\u002Flink.springer.com\u002Fbook\u002F10.1007\u002F978-3-662-62996-3)\r\n- [📘 Effective Modern C++ - Scott Meyers](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Feffective-modern-c\u002F9781491908419\u002F)\r\n\r\n##### Additional resources from Bjarne Stroustrup, creator of C++\r\n\r\n- [🎞️👶 The Essence of C++ by Bjarne Stroustrup - YouTube](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=86xWVb4XIyE)\r\n- [🎞️👶💎 Delivering Safe C++ by Bjarne Stroustrup - CppCon 2023](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=I8UvQKvOSSw)\r\n- [🎞️👶💎 The Design of C++ by Bjarne Stroustrup Computer History - YouTube](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=69edOm889V4)\r\n- [📘 The Design and Evolution of C++ - Bjarne Stroustrup](https:\u002F\u002Fwww.stroustrup.com\u002Fdne.html)\r\n- [📘💎 Papers on C++ by Bjarne Stroustrup - Stroustrup's Website](https:\u002F\u002Fwww.stroustrup.com\u002Fpapers.html)\r\n- [🔗 Papers on C++ by Bjarne Stroustrup - ACM DL](https:\u002F\u002Fdl.acm.org\u002Fkeyword\u002FC%2B%2B?expand=all&ContribRoleAndId=author%3A10.1145%2Fcontrib-81100106139)\r\n\r\n#### 🔵 Assembly\r\n\r\n- [📝👶 Introduction to ARM Assembly Basics](https:\u002F\u002Fazeria-labs.com\u002Fwriting-arm-assembly-part-1\u002F)\r\n- [🎞️ Udemy – ARM GNU Assembly Programming From Ground Up](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Farm-gnu-assembly-programming-from-ground-uptm\u002F)\r\n- [🎞️ Assembly Language Programming with ARM – Full Tutorial for Beginners](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gfmRrPjnEw4)\r\n- [📝 How to Use Inline Assembly Language in C Code](https:\u002F\u002Fgcc.gnu.org\u002Fonlinedocs\u002Fgcc\u002FUsing-Assembly-Language-with-C.html)\r\n- [📘 Raspberry Pi Assembly Language Programming : ARM Processor Coding](https:\u002F\u002Fwww.amazon.com\u002FRaspberry-Assembly-Language-Programming-Processor\u002Fdp\u002F1484252861)\r\n- [🔗 Battery info program for x86-64 Linux laptops in 298 bytes of machine code](https:\u002F\u002Fgithub.com\u002Fmeribold\u002Fbtry)\r\n\r\n#### 🔵 Python\r\n\r\n- [📝 Python for embedded systems testing](https:\u002F\u002Fwww.elsys-design.com\u002Fen\u002Fpython-embedded-systems-testing\u002F)\r\n- [📝👶 The Python Handbook – Learn Python for Beginners](https:\u002F\u002Fwww.freecodecamp.org\u002Fnews\u002Fthe-python-handbook\u002F)\r\n- [🔗💎 Real Python: Python Tutorials](https:\u002F\u002Frealpython.com\u002F)\r\n- [📘👶💎 Python Crash Course - Eric Matthes](https:\u002F\u002Fa.co\u002Fd\u002FhSMTJwE)\r\n\r\n##### 🔶 Python for Microcontrollers\r\n\r\n- [🔗 MicroPython - Python for microcontrollers](https:\u002F\u002Fmicropython.org\u002F)\r\n- [🔗 MicroPython 101 | Arduino Documentation](https:\u002F\u002Fdocs.arduino.cc\u002Fmicropython-course\u002F)\r\n- [🔗 CircuitPython](https:\u002F\u002Fcircuitpython.org\u002F)\r\n- [📝 The Pros and Cons of Designing Embedded Systems with MicroPython](https:\u002F\u002Fwww.designnews.com\u002Felectronics-test\u002Fpros-and-cons-designing-embedded-systems-micropython)\r\n- [📝 Programming the ESP32 with MicroPython](https:\u002F\u002Fwolles-elektronikkiste.de\u002Fen\u002Fprogramming-the-esp32-with-micropython)\r\n\r\n#### 🔵 Rust\r\n\r\n- [📝 5 roadblocks to Rust adoption in embedded systems](https:\u002F\u002Fwww.embedded.com\u002F5-roadblocks-to-rust-adoption-in-embedded-systems\u002F)\r\n- [🔗 The Embedded Rust Book](https:\u002F\u002Fdocs.rust-embedded.org\u002Fbook\u002F)\r\n- [🎞️ The Future of Programming: Rust (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLc7W4b0WHTAUAEAguiqpNa5H0QqXJIJI6)\r\n- [🔗 Community Rust support projects for STM32 microcontrollers](https:\u002F\u002Fgithub.com\u002Fstm32-rs)\r\n- [🔗 Rust on ESP Community](https:\u002F\u002Fgithub.com\u002Fesp-rs)\r\n- [🎞️ Embedded Rust su ESP32 (Italian) - YouTube Playlist](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLT--ndZEB54ek5_Zv6x6WCioh5m35zh5i)\r\n- [📝 Rust on STM32: Getting started](https:\u002F\u002Fjonathanklimt.de\u002Felectronics\u002Fprogramming\u002Fembedded-rust\u002Frust-on-stm32-2\u002F)\r\n- [📝 From Zero to main(): Bare metal Rust](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fzero-to-main-rust-1)\r\n- [📝 Writing an OS in Rust - Philipp Oppermann's blog](https:\u002F\u002Fos.phil-opp.com\u002F)\r\n- [📝 Kernel Driver with Rust in 2022](https:\u002F\u002Fnot-matthias.github.io\u002Fposts\u002Fkernel-driver-with-rust\u002F)\r\n- [🔗 Rustlings - Small exercises to get you used to reading and writing Rust code!](https:\u002F\u002Frustlings.cool\u002F)\r\n- [🔗 Learn Rust the Effective Way](https:\u002F\u002Fwww.rustfinity.com\u002F)\r\n\r\n#### 🔵 Zig\r\n\r\n- [📝 Testing Zig for embedded development](https:\u002F\u002Fwww.kuon.ch\u002Fpost\u002F2022-06-22-zig-embed\u002F)\r\n- [🔗 Zig Embedded Group](https:\u002F\u002Fgithub.com\u002FZigEmbeddedGroup)\r\n- [🔗 MicroZig - Unified abstraction layer and HAL for several microcontrollers](https:\u002F\u002Fgithub.com\u002FZigEmbeddedGroup\u002Fmicrozig)\r\n- [📝 Zig Bare Metal Programming on STM32F103 — Booting up](https:\u002F\u002Fmaldus512.medium.com\u002Fzig-bare-metal-programming-on-stm32f103-booting-up-b0ecdcf0de35)\r\n\r\n_________________\r\n\r\n### ✳️ Microcontrollers\r\n\r\nMicrocontrollers are integrated circuits (ICs) that combine a microprocessor, memory, and input\u002Foutput (I\u002FO) peripherals on a single chip. They are designed for embedded applications, where they are used to control devices in a variety of industries, including automotive, industrial, consumer electronics, and healthcare.\r\n\r\nSome popular microcontroller families include AVR, PIC, STM32, MSP430, nRF, and ESP32. Choosing the right microcontroller involves assessing application requirements, processing power, memory needs, and input\u002Foutput capabilities. Consider ease of use, cost, reliability, availability, and future expansion.\r\n\r\n- [📝 What Is a Microcontroller? The Defining Characteristics and Architecture of a Common Component](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fwhat-is-a-microcontroller-introduction-component-characteristics-component\u002F)\r\n- [📝 How to Choose the Right Microcontroller for Your Application](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fhow-to-choose-the-right-microcontroller-for-your-application\u002F)\r\n- [📝 How to Read a Microcontroller Datasheet: Introduction and First Steps](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fhow-to-read-a-microcontroller-datasheet-introduction-and-first-steps2\u002F)\r\n- [📘👶 Make: AVR Programming - Elliot Williams](https:\u002F\u002Fwww.oreilly.com\u002Flibrary\u002Fview\u002Fmake-avr-programming\u002F9781449356484\u002F)\r\n- [🎞️👶💎 NewbieHack - Microcontroller Tutorial - A Beginners Guide (AVR)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLE72E4CFE73BD1DE1)\r\n- [🎞️👶 Getting Started with STM32 and Nucleo (YouTube Playlist)](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv)\r\n- [📘💎 Mastering STM32 - Carmine Noviello](https:\u002F\u002Fleanpub.com\u002Fmastering-stm32-2nd)\r\n- [📘💎 Developing IoT Projects with ESP32 - Vedat Ozan Oner](https:\u002F\u002Fwww.packtpub.com\u002Fproduct\u002Fdeveloping-iot-projects-with-esp32-second-edition\u002F9781803237688)\r\n- [🎞️👶 Intro to Raspberry Pi Pico and RP2040 (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLEBQazB0HUyQO6rJxKr2umPCgmfAU-cqR)\r\n- [🔗 Getting started with STM32: STM32 step-by-step](https:\u002F\u002Fwiki.st.com\u002Fstm32mcu\u002Fwiki\u002FCategory:Getting_started_with_STM32_:_STM32_step_by_step)\r\n- [🎞️ Getting Started With AVR (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLtQdQmNK_0DRhBWYZ32BEILOykXLpJ8tP)\r\n- [🎞️ Fundamentals of Microcontrollers - Arduino bare-metal breakdown (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLNyfXcjhOAwOF-7S-ZoW2wuQ6Y-4hfjMR)\r\n- [🎞️ Bare Metal Embedded Programming: Theory and Practice Using STM32 (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL4cGeWgaBTe155QQSQ72DksLIjBn5Jn2Z)\r\n- [📘 Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay](https:\u002F\u002Flink.springer.com\u002Fbook\u002F10.1007\u002F978-1-4842-3624-6)\r\n- [🎞️ Udemy – Microcontroller Embedded C Programming: Absolute Beginners](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fmicrocontroller-embedded-c-programming\u002F)\r\n- [🎞️ Udemy – Embedded Systems STM32 Low-Layer APIs(LL) Driver Development](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fembedded-systems-stm32-low-level-ll-driver-development\u002F)\r\n- [🎞️ Udemy – Embedded Systems STM32 HAL APIs Driver Development](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fembedded-systems-stm32-hal-apis-driver-development\u002F)\r\n- [📘 Embedded System Design with ARM Cortex-M Microcontrollers: Applications with C, C++ and MicroPython - Cem Ünsalan, Hüseyin Deniz Gürhan, Mehmet Erkin Yücel](https:\u002F\u002Flink.springer.com\u002Fbook\u002F10.1007\u002F978-3-030-88439-0)\r\n- [📘💎 Embedded Systems Design using the MSP430FR2355 LaunchPad - Brock J. LaMeres](https:\u002F\u002Flink.springer.com\u002Fbook\u002F10.1007\u002F978-3-030-40574-8)\r\n- [📘💎 Building Embedded Systems: Programmable Hardware - Changyi Gu](https:\u002F\u002Flink.springer.com\u002Fbook\u002F10.1007\u002F978-1-4842-1919-5)\r\n- [🔗 Awesome Embedded: A curated list of awesome embedded programming](https:\u002F\u002Fgithub.com\u002Fnhivp\u002FAwesome-Embedded)\r\n- [🔗 Awesome Electronics: A curated list of electronics resources](https:\u002F\u002Fgithub.com\u002Fkitspace\u002Fawesome-electronics)\r\n\r\n#### 🔵 GPIO\r\n\r\n- [🎞️ Tutorial 5: Peripheral 1 - General purpose Input Output (GPIO) Configuration in STM32](https:\u002F\u002Fyoutu.be\u002FtjDhmavBGf0)\r\n\r\n#### 🔵 ADC\r\n\r\n- [🎞️ How Do ADCs Work? - The Learning Circuit](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=g4BvbAKNQ90)\r\n- [🎞️ Tutorial 13: ADC in STM32F4](https:\u002F\u002Fyoutu.be\u002FvIlG_i3GqeU)\r\n- [🎞️ Tutorial 14: ADC by Polling](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=uUi6JyUuEJA)\r\n\r\n#### 🔵 DAC\r\n\r\n- [🎞️ How Do DACs Work? - The Learning Circuit](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=YAxrmoVtEtE)\r\n- [🎞️ DAC in STM32 || Sine wave || HAL || CubeIDE](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6Z1L6ox63j0)\r\n\r\n#### 🔵 Timers \u002F Counters\r\n\r\n- [📝 Introduction to Microcontroller Timers: Periodic Timers](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fintroduction-to-microcontroller-timers-periodic-timers\u002F)\r\n- [📝 AVR Timer programming](https:\u002F\u002Fexploreembedded.com\u002Fwiki\u002FAVR_Timer_programming)\r\n- [🎞️ STM32 TIMERS (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLfIJKC1ud8gjLZBzjE3kKBMDEH_lUc428)\r\n\r\n#### 🔵 PWM (Pulse Width Modulation)\r\n\r\n- [🎞️ What is PWM?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=B_Ysdv1xRbA)\r\n- [📝 Pulse-width Modulation (PWM) Timers in Microcontrollers](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fintroduction-to-microcontroller-timers-pwm-timers\u002F)\r\n- [🎞️ STM32 Guide #3: PWM + Timers](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=AjN58ceQaF4)\r\n\r\n#### 🔵 RTC  (Real Time Clock)\r\n\r\n- [📝 Real Time Clocks (RTCs) in Microcontroller Timers](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fintroduction-to-microcontroller-timers-real-time-clocks\u002F)\r\n\r\n#### 🔵 Watchdog\r\n\r\n- [📝 A Guide to Watchdog Timers for Embedded Systems](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Ffirmware-watchdog-best-practices)\r\n- [📝 Watchdog Timers in Microcontrollers](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fwatchdog-timers-microcontroller-timers\u002F)\r\n- [🎞️ The Watchdog Timer on Arduino](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=AzZBgH67mgE)\r\n- [🎞️ WATCHDOGS in STM32 || IWDG and WWDG || CubeIDE](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=AelNsnpfbcM)\r\n\r\n#### 🔵 Interrupts\r\n\r\n- [🎞️ Polling\u002FInterrupt\u002FDMA differences explained easily](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LNPBr3WvuNg)\r\n- [🎞️ Level Up Your Arduino Code: External Interrupts](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=J61_PKyWjxU)\r\n- [🎞️ Tutorial 10: Peripheral 2 - Nested Vector Interrupt controller (NVIC) in STM32](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=qwebM-YaSU4)\r\n- [🎞️ Tutorial 11: LAB - External Interrupt ( EXTI ) Interfacing in STM32 using STM32CUBEMX](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oJc0seuBbzI)\r\n- [🎞️ Tutorial 12: Interrupt Priorities in STM32](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=aXLJD4qJmtk)\r\n\r\n#### 🔵 DMA\r\n\r\n- [🎞️ Introduction to Direct Memory Access (DMA)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=M16l_ymlfcs)\r\n- [🎞️ STM32 DMA PT 1](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=yvLHtXJ_KSg)\r\n- [🎞️ STM32 DMA PT 2](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Kb8dX18xYuo)\r\n- [🎞️ Getting Started With STM32 & Nucleo Part 4: Working with ADC and DMA - Maker.io](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=EsZLgqhqfO0)\r\n- [🎞️ STM32 UART DMA and IDLE LINE || Receive unknown length DATA](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Bo6MC5A8uTE)\r\n\r\n#### 🔵 Clock Management\r\n\r\n- [📝 Clock Configuration in STM32](https:\u002F\u002Fmedium.com\u002F@csrohit\u002Fclock-configuration-in-stm32-6a058da220e0)\r\n- [🎞️ STM32: Change clock speed via registers](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=W_9jPMgiqaQ)\r\n- [🎞️ #1. Intro to STM32F4 Register Based Programming || Clock Setup || LED Blinking || NO HAL](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=GJ_LFAlOlSk)\r\n- [🎞️ Tutorial 8: MCU Clocks configuration in STM32 using STM32CUBEMX](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=y8yNsWpQiTM)\r\n- [🎞️ Clock sources and PLL in ARM Cortex M4](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2ou8FQ_7PdI)\r\n\r\n#### 🔵 Power Management\r\n\r\n- [🎞️ SLEEP Mode in STM32F103 || CubeIDE || Low Power Mode || Current Consumption](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2rKcsGkCG0s)\r\n- [🎞️ STOP MODE in STM32 || CubeIDE || Low Power Mode](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=UtQhc4XV8k4)\r\n\r\n#### 🔵 Bootloader \u002F DFU (Device Firmware Update)\r\n\r\n- [📝 Basics to Developing Bootloader for Arduino](https:\u002F\u002Fwww.electronicwings.com\u002Farduino\u002Fbasics-to-developing-bootloader-for-arduino)\r\n- [📝 From Zero to main(): How to Write a Bootloader from Scratch](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fhow-to-write-a-bootloader-from-scratch)\r\n- [🎞️ How to Create a Super Simple Bootloader](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=OkUQ3iMmiYQ&list=PLnMKNibPkDnEb1sphpdFJ3bR9dNy7S6mO)\r\n- [🎞️ Blinky To Bootloader: Bare Metal Programming Series (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ)\r\n- [📝 Simple AVR Bootloader tutorial](https:\u002F\u002Fwww.pocketmagic.net\u002Fsimple-avr-bootloader-tutorial\u002F)\r\n- [🎞️💎 Udemy – STM32Fx Microcontroller Custom Bootloader Development](https:\u002F\u002Fwww.udemy.com\u002Fcourse\u002Fstm32f4-arm-cortex-mx-custom-bootloader-development\u002F)\r\n- [📝💎 Device Firmware Update Cookbook](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fdevice-firmware-update-cookbook)\r\n\r\n_________________\r\n\r\n### ✳️ Interfaces, Protocols & Communication Technologies\r\n\r\nEmbedded systems often communicate with other devices or external systems via interfaces, protocols. Interfaces provide the physical connections, protocols define data exchange rules. The choice depends on application-specific needs, including bandwidth, distance, security, and power consumption.\r\n\r\n#### 🔵 ‌Basic Protocols\r\n\r\n- [🎞️👶 Understanding Serial Protocols](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LEz5UCN3aHA)\r\n- [🎞️👶 Serial Protocol Fundamentals](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=yz7h5xd18OE)\r\n- [📝👶 Understanding and Selecting in 2024: I2C, SPI, UART Explained](https:\u002F\u002Fwww.parlezvoustech.com\u002Fen\u002Fcomparaison-protocoles-communication-i2c-spi-uart\u002F)\r\n- [📝👶 Basics of Wired Embedded Protocols](https:\u002F\u002Fpiolabs.com\u002Fblog\u002Fengineering\u002Fwired-embedded-protocols-basics.html)\r\n- [🎞️ PROTOCOLS: UART - I2C - SPI - Serial communications #001](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=IyGwvGzrqp8)\r\n- [📝👶 Understanding and Selecting in 2024: I2C, SPI, UART Explained](https:\u002F\u002Fwww.parlezvoustech.com\u002Fen\u002Fcomparaison-protocoles-communication-i2c-spi-uart\u002F)\r\n\r\n##### 🔶 UART\r\n\r\n- [🎞️👶 Understanding UART](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sTHckUyxwp8)\r\n- [🎞️ how does UART work??? (explained clearly)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=V6m2skVlsQI)\r\n- [🎞️ Basics of UART Communication | UART Frame Structure | RS 232 Basics | Part1](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JuvWbRhhpdI)\r\n- [🎞️ Understanding UART Communication Programming | UART Peripherals | Part 2](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=QmjKRwgddxw)\r\n- [🎞️ The RS-232 protocol](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=AHYNxpqKqwo)\r\n\r\n##### 🔶 I2C\r\n\r\n- [🎞️👶 Understanding I2C](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=CAvawEcxoPU)\r\n- [📝 I2C in a Nutshell](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fi2c-in-a-nutshell)\r\n- [🎞️ STM32 I2C SLAVE (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLfIJKC1ud8gj_P7Qb28aTr0t92uk_vwg0)\r\n\r\n##### 🔶 SPI\r\n\r\n- [🎞️👶 Understanding SPI](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0nVNwozXsIc)\r\n- [🎞️ SPI: The serial peripheral interface](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=MCi7dCBhVpQ)\r\n- [🎞️ Getting Started with STM32 and Nucleo Part 5: How to Use SPI | Digi-Key Electronics](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=eFKeNPJq50g)\r\n\r\n##### 🔶 SDIO\r\n\r\n- [📝 SDIO Protocol](https:\u002F\u002Fprodigytechno.com\u002Fsdio-protocol\u002F)\r\n- [📝 Interface SD CARD with SDIO in STM32](https:\u002F\u002Fcontrollerstech.com\u002Finterface-sd-card-with-sdio-in-stm32\u002F)\r\n- [🔗 SDIO Card Slave Driver - ESP32 - Technical Documents](https:\u002F\u002Fdocs.espressif.com\u002Fprojects\u002Fesp-idf\u002Fen\u002Flatest\u002Fesp32\u002Fapi-reference\u002Fperipherals\u002Fsdio_slave.html)\r\n\r\n##### 🔶 I3C\r\n\r\n- [🎞️ What is I3C®?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=g3TBNHec5Ec)\r\n- [🔗 MIPI I3C & MIPI I3C Basic](https:\u002F\u002Fwww.mipi.org\u002Fspecifications\u002Fi3c-sensor-specification)\r\n- [📝 I3C Protocol: Understanding and Debug](https:\u002F\u002Fprodigytechno.com\u002Fmipi-i3c-protocol-debug\u002F)\r\n- [🎞️ MIPI I3C Basic - The next generation sensor interface enabling low-power IoT applications](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=xWKxZp_9RFQ)\r\n\r\n##### 🔶 1-Wire\r\n\r\n- [🎞️ 1-Wire® Technology Overview](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=CjH-OztKe00)\r\n\r\n#### 🔵 Digital Audio Protocols\r\n\r\n##### 🔶 I2S\r\n\r\n- [📝 Introduction to the I2S Interface](https:\u002F\u002Fwww.allaboutcircuits.com\u002Ftechnical-articles\u002Fintroduction-to-the-i2s-interface\u002F)\r\n- [🎞️ Building a Digital Music Player with I2S?! What is I2S! EB#45](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=qNLvoSQCx60)\r\n- [🔗 UM11732 - I2S bus specification](https:\u002F\u002Fwww.nxp.com\u002Fdocs\u002Fen\u002Fuser-manual\u002FUM11732.pdf)\r\n\r\n##### 🔶 PCM\r\n\r\n- [🔗 HUAWEI LGA Module - PCM Audio Design Guide](https:\u002F\u002Fwww.paoli.cz\u002Fout\u002Fmedia\u002FHUAWEI%20LGA%20Module%20PCM%20Audio%20Design%20Guide-V100R001_04(1).pdf)\r\n- [📝 PCM Terminology and Concepts](https:\u002F\u002Flarsimmisch.github.io\u002Fpyalsaaudio\u002Fterminology.html)\r\n\r\n#### 🔵 Display & Camera Protocols\r\n\r\n##### 🔶 SCCB\r\n\r\n- [🔗 SCCB Specification (PDF)](https:\u002F\u002Fpeople.ece.cornell.edu\u002Fland\u002Fcourses\u002Fece4760\u002FFinalProjects\u002Ff2021\u002Fjfw225_aei23_dsb298\u002Fjfw225_aei23_dsb298\u002FSCCBSpec_AN.pdf)\r\n- [📝 OmniVision OV5640 Software Application Notes (PDF)](https:\u002F\u002Fdlscorp.com\u002Fwp-content\u002Fuploads\u002F2018\u002F04\u002FOmniVision-OV5640-Software-Application-Notes.pdf)\r\n\r\n##### 🔶 MIPI CSI-2\r\n\r\n- [🔗 MIPI Camera Serial Interface 2](https:\u002F\u002Fwww.mipi.org\u002Fspecifications\u002Fcsi-2)\r\n- [🎞️ Tutorial: MIPI CSI-2](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8REu_h7bzHM)\r\n- [🔗 AN13573 - i.MX 8\u002FRT MIPI DSI\u002FCSI-2](https:\u002F\u002Fwww.nxp.com\u002Fdocs\u002Fen\u002Fapplication-note\u002FAN13573.pdf)\r\n\r\n##### 🔶 MIPI DSI\r\n\r\n- [🔗 MIPI Display Serial Interface](https:\u002F\u002Fwww.mipi.org\u002Fspecifications\u002Fdsi)\r\n- [🔗 AN4860 - Introduction to DSI host on STM32 MCUs and MPUs](https:\u002F\u002Fwww.st.com\u002Fresource\u002Fen\u002Fapplication_note\u002Fan4860-introduction-to-dsi-host-on-stm32-mcus-and-mpus-stmicroelectronics.pdf)\r\n\r\n##### 🔶 HDMI\r\n\r\n- [🎞️ TI Precision Labs - Video Interface: What are HDMI & Dual-Mode DisplayPort?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jCO7Up1rzJc)\r\n- [🎞️ HDMI 2.1 & TMDS Crash Course - ENMU EET 457 - Presentation](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5acgSK0kWTE)\r\n\r\n#### 🔵 Wireless Protocols\r\n\r\n##### 🔶 Bluetooth \u002F BLE\r\n\r\n- [🎞️👶💎 Microchip University - First Steps into Bluetooth Low Energy (BLE)](https:\u002F\u002Fmu.microchip.com\u002Ffirst-steps-into-bluetooth-low-energy-ble)\r\n- [📝 Bluetooth Basics](https:\u002F\u002Flearn.sparkfun.com\u002Ftutorials\u002Fbluetooth-basics\u002Fall)\r\n- [📝 Bluetooth Low Energy: A Primer](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fbluetooth-low-energy-a-primer)\r\n- [📝 A Practical Guide to BLE Throughput](https:\u002F\u002Finterrupt.memfault.com\u002Fblog\u002Fble-throughput-primer)\r\n- [🎞️ SparkFun According to Pete #49 - How Bluetooth Works](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=zJqGLWQGyvk)\r\n- [🔗 Bluetooth Low Energy Fundamentals - Nordic Semiconductor](https:\u002F\u002Facademy.nordicsemi.com\u002Fcourses\u002Fbluetooth-low-energy-fundamentals\u002F)\r\n- [🔗 Bluetooth Overview - ESP-IDF Programming Guide](https:\u002F\u002Fdocs.espressif.com\u002Fprojects\u002Fesp-idf\u002Fen\u002Flatest\u002Fesp32\u002Fapi-guides\u002Fbluetooth.html)\r\n\r\n##### 🔶 Wi-Fi\r\n\r\n- [🎞️ 802.11 How WiFi Works - Wireless Networks | Computer Networks Ep. 7.3 | Kurose & Ross](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vvhEnr52UOU)\r\n- [🎞️ 802.11 Frame Analysis](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ITAJb3v5VKQ)\r\n- [🔗 Wi-Fi Driver - ESP-IDF Programming Guide](https:\u002F\u002Fdocs.espressif.com\u002Fprojects\u002Fesp-idf\u002Fen\u002Flatest\u002Fesp32\u002Fapi-guides\u002Fwifi.html)\r\n- [📝 ESP32 Set an Access Point (AP) using ESP-IDF](https:\u002F\u002Fesp32tutorials.com\u002Fesp32-access-point-ap-esp-idf\u002F)\r\n- [📝 ESP32 ESP-IDF Connect with WiFi – Station Mode Example](https:\u002F\u002Fesp32tutorials.com\u002Fesp32-esp-idf-connect-wifi-station-mode-example\u002F)\r\n\r\n##### 🔶 LoRa \u002F LoRaWAN\r\n\r\n- [📝 The Arduino Guide to LoRa® and LoRaWAN®](https:\u002F\u002Fdocs.arduino.cc\u002Flearn\u002Fcommunication\u002Florawan-101)\r\n- [🔗💎 The Things Fundamentals on LoRaWAN!](https:\u002F\u002Fwww.thethingsnetwork.org\u002Fdocs\u002Florawan\u002F)\r\n- [📝 What are LoRa® and LoRaWAN®?](https:\u002F\u002Flora-developers.semtech.com\u002Fdocumentation\u002Ftech-papers-and-guides\u002Flora-and-lorawan\u002F)\r\n- [🎞️ #112 LoRa \u002F LoRaWAN De-Mystified \u002F Tutorial](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=hMOwbNUpDQA)\r\n- [🔗 ESP32 with LoRa using Arduino IDE – Getting Started](https:\u002F\u002Frandomnerdtutorials.com\u002Fesp32-lora-rfm95-transceiver-arduino-ide\u002F)\r\n\r\n##### 🔶 Zigbee\r\n\r\n- [🎞️ What is ZIGBEE And How It Works?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=THtVeaxnd9E)\r\n- [🎞️ How to take advantage of Zigbee and Bluetooth LE 5.2 on STM32WB wireless MCUs - Webinar Replay](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2sYEPykOaLQ)\r\n\r\n##### 🔶 Thread\r\n\r\n- [🔗 OpenThread - An open-source implementation of Thread®](https:\u002F\u002Fopenthread.io\u002F)\r\n- [🎞️ What is Thread? Low-power IoT Networking for Smart Home Devices | Digi-Key Electronics](https:\u002F\u002Fyoutu.be\u002F5CauESYB9-A)\r\n- [🔗 OpenThread - ESP-IDF Programming Guide](https:\u002F\u002Fdocs.espressif.com\u002Fprojects\u002Fesp-idf\u002Fen\u002Flatest\u002Fesp32\u002Fapi-guides\u002Fopenthread.html)\r\n\r\n##### 🔶 Matter\r\n\r\n- [🎞️ What is Matter? Unifying IoT Devices for the Smart Home | Digi-Key Electronics](https:\u002F\u002Fyoutu.be\u002FvJIEfih9bl0)\r\n\r\n#### 🔵 Industrial Protocols\r\n\r\n##### 🔶 Modbus\r\n\r\n- [🎞️ What is Modbus and How does it Work?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=txi2p5_OjKU)\r\n- [🎞️ How does Modbus Communication Protocol Work?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JBGaInI-TG4)\r\n- [🎞️ MODBUS STM32 (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLfIJKC1ud8ggRvaEsMjSEDazoBAnY4MUv)\r\n\r\n##### 🔶 RS485\r\n\r\n- [🎞️ What is RS485 and How it's used in Industrial Control Systems?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3wgKcUDlHuM)\r\n- [🎞️ What is RS-485?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=bt9Px51eP6s)\r\n\r\n##### 🔶 EtherCAT\r\n\r\n- [🎞️ Microchip University - An Introduction to EtherCAT®, EtherCAT P and the Microchip LAN925x family of Slave Controllers](https:\u002F\u002Fmu.microchip.com\u002Fan-introduction-to-ethercat-ethercat-p-and-the-microchip-lan925x-family-of-slave-controllers)\r\n\r\n##### 🔶 CoAP & MQTT\r\n\r\n- [🎞️ #144 Internet Protocols: CoAP vs MQTT, Network Sniffing, and preparation for IKEA Tradfri Hacking](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=pfG8uEDZj5g)\r\n- [🎞️ MQTT vs. CoAP | Comparison of IoT Protocols](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0CORpVSUQe0)\r\n- [🎞️ Simple ESP32 IoT Sensor Node Tutorial: WiFi Enabled MQTT Sensor Data Node](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=x5A5S0hoyJ0)\r\n- [🔗 Cellular IoT Fundamentals - Nordic Semiconductor](https:\u002F\u002Facademy.nordicsemi.com\u002Fcourses\u002Fcellular-iot-fundamentals\u002F)\r\n\r\n#### 🔵 High-Speed Protocols\r\n\r\n##### 🔶 Ethernet\r\n\r\n- [🎞️👶 Microchip University - Ethernet Fundamentals](https:\u002F\u002Fmu.microchip.com\u002Fethernet-fundamentals)\r\n- [📝 How the Ethernet Protocol Works – A Complete Guide](https:\u002F\u002Fwww.freecodecamp.org\u002Fnews\u002Fthe-complete-guide-to-the-ethernet-protocol\u002F)\r\n- [🎞️ What is an Ethernet PHY?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JH3cMYErmKI)\r\n- [🎞️ The Data Link Layer, MAC Addressing, and the Ethernet Frame](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_b4dXKB8Pt8)\r\n- [🎞️ Microchip University - Serializer\u002FDeserializer (SerDes) Basics for Your Next Microchip Ethernet PHY Design](https:\u002F\u002Fmu.microchip.com\u002Fserializerdeserializer-serdes-basics-for-your-next-microchip-ethernet-phy-design)\r\n- [🎞️ Microchip University - Ethernet Switch Fundamentals](https:\u002F\u002Fmu.microchip.com\u002Fethernet-switch-fundamentals)\r\n\r\n##### 🔶 USB\r\n\r\n- [🎞️👶 Microchip University - Introduction to USB 2.0](https:\u002F\u002Fmu.microchip.com\u002Fintroduction-to-usb-20)\r\n- [🎞️👶 Microchip University - USB 3 Fundamentals](https:\u002F\u002Fmu.microchip.com\u002Fusb-3-fundamentals)\r\n- [🎞️ Training - USB 101 - Introduction to USB](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5S6ZPmtPzRA)\r\n- [🔗 USB 101: An Introduction to Universal Serial Bus 2.0](https:\u002F\u002Fwww.infineon.com\u002Fdgdl\u002FInfineon-AN57294_USB_101_An_Introduction_to_Universal_Serial_Bus_2.0-ApplicationNotes-v09_00-EN.pdf?fileId=8ac78c8c7cdc391c017d072d8e8e5256)\r\n- [🎞️ How does a USB keyboard work?](https:\u002F\u002Fyoutu.be\u002FwdgULBpRoXk)\r\n- [🎞️ How does USB device discovery work?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=N0O5Uwc3C0o)\r\n- [🎞️ MOOC - STM32 USB training (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLnMKNibPkDnFFRBVD206EfnnHhQZI4Hxa)\r\n- [🎞️ Microchip University - USB2 Hub Fundamentals](https:\u002F\u002Fmu.microchip.com\u002Fusb2-hub-fundamentals)\r\n- [🔗 Beyond Logic - USB in a NutShell](https:\u002F\u002Fwww.beyondlogic.org\u002Fusbnutshell\u002Fusb1.shtml)\r\n- [📝 USB for Software Developers: An introduction to writing userspace USB drivers](https:\u002F\u002Fwerwolv.net\u002Fposts\u002Fusb_for_sw_devs\u002F)\r\n\r\n##### 🔶 PCIe\r\n\r\n- [🎞️ What is PCIe?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=L9qXjmJdQXY)\r\n- [🎞️ PCIe QuickLearn (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL9B4edd-p2ajuP4dBHcnhtHKoZKkoR1R4)\r\n- [🎞️ PCIe Protocol (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLZe4P0P_9Cosd0i2ha_QRdWlR1iZ0yVG4)\r\n\r\n#### 🔵 Automotive Protocols\r\n\r\n##### 🔶 CAN\r\n\r\n- [🎞️👶 Microchip University - CAN and CAN FD Protocol and Physical Layer Basics](https:\u002F\u002Fmu.microchip.com\u002Funderstanding-the-can-fd-protocol)\r\n- [📝👶 CAN bus in 2024: Operation, Advantages and Recent Developments](https:\u002F\u002Fwww.parlezvoustech.com\u002Fen\u002Fbus-can-2024-technologie-avantages-evolutions\u002F)\r\n- [🎞️👶 CAN Bus: Serial Communication - How It Works?](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JZSCzRT9TTo&t=21s)\r\n- [🎞️👶 CAN Bus: A Beginners Guide Part 1](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=YBrU_eZM110)\r\n- [🎞️👶 CAN Bus: A Beginners Guide Part 2](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=z5CVljiLhvc)\r\n- [🎞️💎 Microchip University - Designing and Implementing a CAN FD Network](https:\u002F\u002Fmu.microchip.com\u002Fdesigning-and-implementing-a-can-fd-network)\r\n- [🎞️ Improving my electric longboard with a CAN Bus! What can the CAN Bus do? EB#44](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=PL0TPdrhMuI)\r\n- [🎞️ CAN Bus, OBD2 & J1939 Explained (YouTube Playlist)](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLpV68vjf4Xo4vZ_SjJ6tTlomYm-k18vDZ)\r\n- [🎞️ J1939 Explained - A Simple Intro [v2.0 | 2021]](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vlqxu9ojbHg)\r\n- [🎞️ Unified Diagnostic Services (UDS) Explained - A Simple Intro [2022]](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=CV_B8tJgI5E)\r\n\r\n#### 🔵 N","这个项目是一个面向有志成为嵌入式系统工程师的全面学习路线图，提供了一系列精选的学习资源。其核心功能包括指导初学者如何从零开始构建相关知识体系，并帮助在职工程师拓展技能。技术特点涵盖了硬件与软件开发的基础到高级内容，特别强调了针对特定应用优化设计的重要性。适合那些希望进入或已经在嵌入式领域工作的人士使用，无论是想深入了解微控制器、固件开发还是整体系统集成，都能从中获益。","2026-06-11 03:43:50","high_star"]