diff --git a/README.md b/README.md index 659c736..4ce0f1a 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,19 @@ The roadmap provides a comprehensive guide to the essential topics for a typical > [!NOTE] > **Remember that the importance of individual software and hardware skills can differ depending on the specific requirements of the company and the job role.** + +> [!TIP] +> **Symbols Guide:** +> +> To differentiate between the types of learning resources below and the difficulty of their content, specific symbols are used before each item: +> +> - ๐Ÿ‘ถ : Easy-to-understand and beginner-friendly resources. Refer to them if you do not have prior knowledge in a topic. +> - ๐Ÿ’Ž : Well-known references that have truly invaluable and comprehensive content. Refer to them if you want to deepen your understanding of a topic. +> - ๐Ÿ“˜ : Books +> - ๐ŸŽž๏ธ : Videos +> - ๐Ÿ“ : Write-ups, articles, and blog posts +> - ๐Ÿ”— : Other links that do not fit into any of the above categories + ## ๐Ÿ˜• Don't Know Where to Start! 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. @@ -66,49 +79,49 @@ Engaging in hands-on projects is the most effective approach to learning. Rather Don't try to build a complex project right away. Start with small, manageable projects to get your feet wet. -- [๐Ÿ”˜ Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/) -- [๐Ÿ”˜ 51 STM32 Projects & Tutorials for Beginners and Up - Hackster.io](https://www.hackster.io/stm32/projects) -- [๐Ÿ”˜ STM32 (STM32F103C8) Projects & Tutorials](https://circuitdigest.com/stm32-projects-and-tutorials) -- [๐Ÿ”˜ ElectronicWings Projects](https://www.electronicwings.com/projects) -- [๐Ÿ”˜ STM32 Firmware - Philโ€™s Lab (YouTube Playlist)](https://youtube.com/playlist?list=PLXSyc11qLa1a4Tqbz228dPZfMrs-KRpzA) -- [๐Ÿ”˜ Raspberry Pi Based Embedded Project Ideas](https://www.rs-online.com/designspark/raspberry-pi-based-embedded-project-ideas) -- [๐Ÿ”˜ Embedded Linux On ARM | Projects](https://www.emertxe.com/embedded-systems/embedded-linux-on-arm/elarm-projects/) +- [๐Ÿ”— Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/) +- [๐Ÿ”— 51 STM32 Projects & Tutorials for Beginners and Up - Hackster.io](https://www.hackster.io/stm32/projects) +- [๐Ÿ”— STM32 (STM32F103C8) Projects & Tutorials](https://circuitdigest.com/stm32-projects-and-tutorials) +- [๐Ÿ”— ElectronicWings Projects](https://www.electronicwings.com/projects) +- [๐Ÿ”— STM32 Firmware - Philโ€™s Lab (YouTube Playlist)](https://youtube.com/playlist?list=PLXSyc11qLa1a4Tqbz228dPZfMrs-KRpzA) +- [๐Ÿ”— Raspberry Pi Based Embedded Project Ideas](https://www.rs-online.com/designspark/raspberry-pi-based-embedded-project-ideas) +- [๐Ÿ”— Embedded Linux On ARM | Projects](https://www.emertxe.com/embedded-systems/embedded-linux-on-arm/elarm-projects/) ### ๐Ÿ”Ž Search and Ask! Use search engines to find the answers to your questions. -- [๐Ÿ”˜ Google](https://www.google.com) -- [๐Ÿ”˜ Bing](https://www.bing.com/) -- [๐Ÿ”˜ DuckDuckGo](https://duckduckgo.com/) +- [๐Ÿ”— Google](https://www.google.com) +- [๐Ÿ”— Bing](https://www.bing.com/) +- [๐Ÿ”— DuckDuckGo](https://duckduckgo.com/) If 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. -- [๐Ÿ”˜ Bing Chat](https://www.bing.com/chat) -- [๐Ÿ”˜ Bard](https://bard.google.com) -- [๐Ÿ”˜ ChatGPT](https://chat.openai.com) -- [๐Ÿ”˜ Poe - Fast, Helpful AI Chat](https://poe.com) +- [๐Ÿ”— Bing Chat](https://www.bing.com/chat) +- [๐Ÿ”— Bard](https://bard.google.com) +- [๐Ÿ”— ChatGPT](https://chat.openai.com) +- [๐Ÿ”— Poe - Fast, Helpful AI Chat](https://poe.com) If you have reservations about relying on AI advice alone, you can also ask real people your questions: -- [๐Ÿ”˜ Electrical Engineering Stack Exchange](https://electronics.stackexchange.com/) -- [๐Ÿ”˜ Reddit ยท r/embedded](https://www.reddit.com/r/embedded/) +- [๐Ÿ”— Electrical Engineering Stack Exchange](https://electronics.stackexchange.com/) +- [๐Ÿ”— Reddit ยท r/embedded](https://www.reddit.com/r/embedded/) ### ๐ŸŽฅ Courses and YouTube Contents You may have heard that YouTube is a university. And it's true - there is an immense 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. -- [๐Ÿ”˜ DigiKey (YouTube Channel)](https://www.youtube.com/@digikey) -- [๐Ÿ”˜ Coursera - Introduction to Embedded Systems Software and Development Environments](https://www.coursera.org/learn/introduction-embedded-systems) -- [๐Ÿ”˜ Coursera - Embedded Software and Hardware Architecture](https://www.coursera.org/learn/embedded-software-hardware) -- [๐Ÿ”˜ Fastbit Embedded Brain Academy](https://fastbitlab.com/) -- [๐Ÿ”˜ Modern Embedded Systems Programming Course (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM) -- [๐Ÿ”˜ element14 presents (YouTube Channel)](https://www.youtube.com/@element14presents) -- [๐Ÿ”˜ Ben Eater (YouTube Channel)](https://www.youtube.com/@BenEater) -- [๐Ÿ”˜ Philโ€™s Lab (YouTube Channel)](https://www.youtube.com/@PhilsLab) -- [๐Ÿ”˜ Embedded Systems - Jacob Sorber (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9IEJIKnBJjEcPAz6fss-Hx0TLytCOMVC) -- [๐Ÿ”˜ edX - Embedded Systems - Shape The World: Microcontroller Input/Output](https://learning.edx.org/course/course-v1:UTAustinX+UT.6.10x+3T2022/home) -- [๐Ÿ”˜ edX - Embedded Systems - Shape The World: Multi-Threaded Interfacing](https://www.edx.org/learn/computer-programming/the-university-of-texas-at-austin-embedded-systems-shape-the-world-multi-threaded-in) +- [๐ŸŽž๏ธ DigiKey (YouTube Channel)](https://www.youtube.com/@digikey) +- [๐ŸŽž๏ธ Coursera - Introduction to Embedded Systems Software and Development Environments](https://www.coursera.org/learn/introduction-embedded-systems) +- [๐ŸŽž๏ธ Coursera - Embedded Software and Hardware Architecture](https://www.coursera.org/learn/embedded-software-hardware) +- [๐ŸŽž๏ธ Fastbit Embedded Brain Academy](https://fastbitlab.com/) +- [๐ŸŽž๏ธ Modern Embedded Systems Programming Course (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM) +- [๐ŸŽž๏ธ element14 presents (YouTube Channel)](https://www.youtube.com/@element14presents) +- [๐ŸŽž๏ธ Ben Eater (YouTube Channel)](https://www.youtube.com/@BenEater) +- [๐ŸŽž๏ธ Philโ€™s Lab (YouTube Channel)](https://www.youtube.com/@PhilsLab) +- [๐ŸŽž๏ธ Embedded Systems - Jacob Sorber (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9IEJIKnBJjEcPAz6fss-Hx0TLytCOMVC) +- [๐ŸŽž๏ธ edX - Embedded Systems - Shape The World: Microcontroller Input/Output](https://learning.edx.org/course/course-v1:UTAustinX+UT.6.10x+3T2022/home) +- [๐ŸŽž๏ธ edX - Embedded Systems - Shape The World: Multi-Threaded Interfacing](https://www.edx.org/learn/computer-programming/the-university-of-texas-at-austin-embedded-systems-shape-the-world-multi-threaded-in) ### ๐Ÿ•น๏ธ Arduino @@ -116,52 +129,52 @@ If you do not have any background in programming the embedded systems, Arduino b Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) takes care of most of the low-level operations and manipulation of registers that you, as an embedded engineer, should be able to handle yourself. 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. For example, CMSIS for ARM Cortex, STM32Cube for STM32, ESP-IDF for Espressif microcontrollers, etc. -- [๐Ÿ”˜ Getting Started with Arduino](https://docs.arduino.cc/learn/starting-guide/getting-started-arduino) -- [๐Ÿ”˜ New Arduino Tutorials (YouTube Playlist)](https://youtube.com/playlist?list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP) -- [๐Ÿ”˜ Arduino in a commercial product?](https://www.youtube.com/watch?v=c5LzsqeSCAc) -- [๐Ÿ”˜ Arduino Project to Product (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQd6Fsf5NQ75M9llbi1_j_8) +- [๐Ÿ”— Getting Started with Arduino](https://docs.arduino.cc/learn/starting-guide/getting-started-arduino) +- [๐ŸŽž๏ธ New Arduino Tutorials (YouTube Playlist)](https://youtube.com/playlist?list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP) +- [๐ŸŽž๏ธ Arduino in a commercial product?](https://www.youtube.com/watch?v=c5LzsqeSCAc) +- [๐ŸŽž๏ธ Arduino Project to Product (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQd6Fsf5NQ75M9llbi1_j_8) ### ๐Ÿ‘จโ€๐Ÿซ Educational Websites -- [๐Ÿ”˜ DeepBlueMbedded](https://deepbluembedded.com/) -- [๐Ÿ’Ž Interrupt Blog by Memfault](https://interrupt.memfault.com/blog/) -- [๐Ÿ”˜ ElectronicWings - Hardware Developers Community](https://www.electronicwings.com/) -- [๐Ÿ”˜ Microchip University](https://mu.microchip.com/) -- [๐Ÿ”˜ Nordic Developer Academy](https://academy.nordicsemi.com/) -- [๐Ÿ”˜ Electronics Tutorials](https://www.electronics-tutorials.ws) -- [๐Ÿ”˜ SparkFun Learn: Learn at SparkFun Electronics](https://learn.sparkfun.com/) -- [๐Ÿ”˜ Adafruit Learning System](https://learn.adafruit.com/) -- [๐Ÿ”˜ STM32 World](https://stm32world.com) -- [๐Ÿ”˜ ControllersTech](https://controllerstech.com/) +- [๐Ÿ”— DeepBlueMbedded](https://deepbluembedded.com/) +- [๐Ÿ”—๐Ÿ’Ž Interrupt Blog by Memfault](https://interrupt.memfault.com/blog/) +- [๐Ÿ”— ElectronicWings - Hardware Developers Community](https://www.electronicwings.com/) +- [๐Ÿ”— Microchip University](https://mu.microchip.com/) +- [๐Ÿ”— Nordic Developer Academy](https://academy.nordicsemi.com/) +- [๐Ÿ”— Electronics Tutorials](https://www.electronics-tutorials.ws) +- [๐Ÿ”— SparkFun Learn: Learn at SparkFun Electronics](https://learn.sparkfun.com/) +- [๐Ÿ”— Adafruit Learning System](https://learn.adafruit.com/) +- [๐Ÿ”— STM32 World](https://stm32world.com) +- [๐Ÿ”— ControllersTech](https://controllerstech.com/) ### ๐Ÿ—บ๏ธ Other Helpful Roadmaps -- [๐Ÿ”˜ Embedded Artistry Beginners Roadmap](https://embeddedartistry.com/beginners/) -- [๐Ÿ”˜ Embedded Systems Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/Embedded%20Systems%20Skill%20Tree) -- [๐Ÿ”˜ PCB Design Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/PCB%20Design%20Skill%20Tree) -- [๐Ÿ”˜ FPGA / ASIC Engineering Roadmap](https://github.com/m3y54m/FPGA-ASIC-Roadmap) +- [๐Ÿ”— Embedded Artistry Beginners Roadmap](https://embeddedartistry.com/beginners/) +- [๐Ÿ”— Embedded Systems Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/Embedded%20Systems%20Skill%20Tree) +- [๐Ÿ”— PCB Design Skill Tree](https://github.com/sjpiper145/MakerSkillTree/tree/main/PCB%20Design%20Skill%20Tree) +- [๐Ÿ”— FPGA / ASIC Engineering Roadmap](https://github.com/m3y54m/FPGA-ASIC-Roadmap) ### ๐Ÿ› ๏ธ IDEs -- [๐Ÿ”˜ Keil MDK & ยตVision](https://www.keil.com/) -- [๐Ÿ”˜ IAR Embedded Workbench](https://www.iar.com) -- [๐Ÿ”˜ STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html) -- [๐Ÿ”˜ Microchip Studio for AVRยฎ and SAM Devices](https://www.microchip.com/en-us/tools-resources/develop/microchip-studio) -- [๐Ÿ”˜ MPLABยฎ X IDE](https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide) -- [๐Ÿ”˜ MCUXpresso IDE](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE) +- [๐Ÿ”— Keil MDK & ยตVision](https://www.keil.com/) +- [๐Ÿ”— IAR Embedded Workbench](https://www.iar.com) +- [๐Ÿ”— STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html) +- [๐Ÿ”— Microchip Studio for AVRยฎ and SAM Devices](https://www.microchip.com/en-us/tools-resources/develop/microchip-studio) +- [๐Ÿ”— MPLABยฎ X IDE](https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide) +- [๐Ÿ”— MCUXpresso IDE](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE) ### ๐Ÿ‘จโ€๐Ÿ’ป VS Code Extensions -- [๐Ÿ”˜ Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) -- [๐Ÿ”˜ STM32 VS Code Extension](https://marketplace.visualstudio.com/items?itemName=stmicroelectronics.stm32-vscode-extension) -- [๐Ÿ”˜ Espressif IDF](https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension) -- [๐Ÿ”˜ MCUXpresso for VS Code](https://marketplace.visualstudio.com/items?itemName=NXPSemiconductors.mcuxpresso) +- [๐Ÿ”— Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) +- [๐Ÿ”— STM32 VS Code Extension](https://marketplace.visualstudio.com/items?itemName=stmicroelectronics.stm32-vscode-extension) +- [๐Ÿ”— Espressif IDF](https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension) +- [๐Ÿ”— MCUXpresso for VS Code](https://marketplace.visualstudio.com/items?itemName=NXPSemiconductors.mcuxpresso) ### ๐Ÿœ PlatformIO PlatformIO is a cross-platform, cross-architecture, multiple framework, professional tool for embedded systems engineers and for software developers who write applications for embedded products. -- [๐Ÿ”˜ PlatformIO - A professional collaborative platform for embedded development](https://platformio.org/) +- [๐Ÿ”— PlatformIO - A professional collaborative platform for embedded development](https://platformio.org/) PlatformIO 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. @@ -171,21 +184,14 @@ PlatformIO is not yet extensively adopted in industrial and large-scale projects > 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. > > Some of the resources mentioned here will just be used as references. Refer to them only when you need them. - -> [!TIP] -> **Symbols Guide:** -> -> - ๐Ÿ‘ถ indicates easy-to-understand and beginner-friendly resources. Refer to them if you do not have prior knowledge in a topic. -> - ๐Ÿ’Ž indicates well-known references that have truly invaluable and comprehensive content. Refer to them if you want to deepen your understanding of a topic. -> - ๐Ÿ”˜ indicates other helpful resources _________________ ### โœณ๏ธ Soft Skills Similar 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. -- [๐Ÿ”˜ Soft Skills For Embedded Systems Software Developers](https://www.embeddedrelated.com/showarticle/1470.php) -- [๐Ÿ”˜ 10 Skills Every Embedded Engineer Should Have](https://medium.com/@lanceharvieruntime/10-skills-every-embedded-engineer-should-have-dcb867095b91) +- [๐Ÿ“ Soft Skills For Embedded Systems Software Developers](https://www.embeddedrelated.com/showarticle/1470.php) +- [๐Ÿ“ 10 Skills Every Embedded Engineer Should Have](https://medium.com/@lanceharvieruntime/10-skills-every-embedded-engineer-should-have-dcb867095b91) _________________ @@ -193,51 +199,50 @@ _________________ #### ๐Ÿ”ต Basic Math & Calculus -- [๐Ÿ”˜ Khan Academy - Calculus 1](https://www.khanacademy.org/math/calculus-1) -- [๐Ÿ‘ถ Calculus For Dummies - Mark Ryan](https://a.co/d/cyvZqE1) -- [๐Ÿ’Ž Thomas' Calculus](https://a.co/d/gFcCC37) +- [๐ŸŽž๏ธ Khan Academy - Calculus 1](https://www.khanacademy.org/math/calculus-1) +- [๐Ÿ“˜๐Ÿ‘ถ Calculus For Dummies - Mark Ryan](https://a.co/d/cyvZqE1) +- [๐Ÿ“˜๐Ÿ’Ž Thomas' Calculus](https://a.co/d/gFcCC37) #### ๐Ÿ”ต Principles of Electric Circuits -- [๐Ÿ‘ถ Lessons in Electric Circuits (All About Circuits)](https://www.allaboutcircuits.com/textbook/) -- [๐Ÿ‘ถ ๐Ÿ’Ž Electronics Tutorials](https://www.electronics-tutorials.ws) -- [๐Ÿ‘ถ ๐Ÿ’Ž Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku](https://www.amazon.com/dp/1260226409?ref_=cm_sw_r_cp_ud_dp_Q11YHXNY2BK530RQZC4S) -- [๐Ÿ‘ถ ๐Ÿ’Ž Principles of Electric Circuits: Conventional Current Version - Thomas L Floyd, David M. Buchla](https://a.co/d/32T2t2X) -- [๐Ÿ’Ž Basic Circuit Theory I (By Prof. Razavi) (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9KyzjPFbwH37w22z-UHVEt37pdJHjZ7x) +- [๐Ÿ”—๐Ÿ‘ถ Lessons in Electric Circuits (All About Circuits)](https://www.allaboutcircuits.com/textbook/) +- [๐Ÿ”—๐Ÿ‘ถ๐Ÿ’Ž Electronics Tutorials](https://www.electronics-tutorials.ws) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku](https://www.amazon.com/dp/1260226409?ref_=cm_sw_r_cp_ud_dp_Q11YHXNY2BK530RQZC4S) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Principles of Electric Circuits: Conventional Current Version - Thomas L Floyd, David M. Buchla](https://a.co/d/32T2t2X) +- [๐ŸŽž๏ธ๐Ÿ’Ž Basic Circuit Theory I (By Prof. Razavi) (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9KyzjPFbwH37w22z-UHVEt37pdJHjZ7x) #### ๐Ÿ”ต Electronics Fundamentals -- [๐Ÿ‘ถ Electronic Basics - GreatScott! (YouTube Playlist)](https://youtube.com/playlist?list=PLAROrg3NQn7cyu01HpOv5BWo217XWBZu0) -- [๐Ÿ‘ถ Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R) -- [๐Ÿ‘ถ ๐Ÿ’Ž Electronic Devices: Conventional Current Version - Thomas Floyd, David Buchla, Steven Wetterling](https://a.co/d/1dsS0vx) -- [๐Ÿ‘ถ ๐Ÿ’Ž Electronics Fundamentals: Circuits, Devices & Applications - Thomas L Floyd, David M. Buchla, Gary D. Snyder](https://a.co/d/4Ye5m8h) -- [๐Ÿ‘ถ Practical Electronics for Inventors - Paul Scherz, Simon Monk](https://a.co/d/1QfSN8j) -- [๐Ÿ’Ž The Art of Electronics - Paul Horowitz, Winfield Hill](https://artofelectronics.net/) -- [๐Ÿ”˜ Hereโ€™s a Quick Way to Know about Major Electronic Components](https://www.elprocus.com/major-electronic-components/) -- [๐Ÿ”˜ Encyclopedia of Electronic Components - Charles Platt](https://a.co/d/83cSiU7) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Electronic Basics - GreatScott! (YouTube Playlist)](https://youtube.com/playlist?list=PLAROrg3NQn7cyu01HpOv5BWo217XWBZu0) +- [๐Ÿ“˜๐Ÿ‘ถ Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Electronic Devices: Conventional Current Version - Thomas Floyd, David Buchla, Steven Wetterling](https://a.co/d/1dsS0vx) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Electronics Fundamentals: Circuits, Devices & Applications - Thomas L Floyd, David M. Buchla, Gary D. Snyder](https://a.co/d/4Ye5m8h) +- [๐Ÿ“˜๐Ÿ‘ถ Practical Electronics for Inventors - Paul Scherz, Simon Monk](https://a.co/d/1QfSN8j) +- [๐Ÿ“˜๐Ÿ’Ž The Art of Electronics - Paul Horowitz, Winfield Hill](https://artofelectronics.net/) +- [๐Ÿ“ Hereโ€™s a Quick Way to Know about Major Electronic Components](https://www.elprocus.com/major-electronic-components/) +- [๐Ÿ“˜ Encyclopedia of Electronic Components - Charles Platt](https://a.co/d/83cSiU7) #### ๐Ÿ”ต Digital Design -- [๐Ÿ‘ถ Tiny Tapeout > Digital Design Guide](https://tinytapeout.com/digital_design/) -- [๐Ÿ‘ถ FPGA Fundamentals - Nandland](https://nandland.com/fpga-101/) -- [๐Ÿ’Ž Digital Design - Morris Mano, Michael Ciletti](https://a.co/d/c3tBaoc) -- [๐Ÿ‘ถ ๐Ÿ’Ž Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI) -- [๐Ÿ‘ถ ๐Ÿ’Ž Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb) -- [๐Ÿ‘ถ Digital Fundamentals - Thomas L. Floyd](https://a.co/d/2lgJKNX) +- [๐Ÿ”—๐Ÿ‘ถ Tiny Tapeout > Digital Design Guide](https://tinytapeout.com/digital_design/) +- [๐Ÿ“˜๐Ÿ’Ž Digital Design - Morris Mano, Michael Ciletti](https://a.co/d/c3tBaoc) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb) +- [๐Ÿ“˜๐Ÿ‘ถ Digital Fundamentals - Thomas L. Floyd](https://a.co/d/2lgJKNX) #### ๐Ÿ”ต Computer Architecture Computer 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. -- [๐Ÿ‘ถ ๐Ÿ’Ž Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://a.co/d/8YPUXG7) -- [๐Ÿ‘ถ ๐Ÿ’Ž Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI) -- [๐Ÿ‘ถ ๐Ÿ’Ž Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb) -- [๐Ÿ”˜ Computer Organization and Embedded Systems - Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian](https://a.co/d/2lt4Svf) -- [๐Ÿ”˜ Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/) -- [๐Ÿ”˜ Embedded Systems Architecture - Daniele Lacamera](https://www.packtpub.com/product/embedded-systems-architecture-second-edition/9781803239545) -- [๐Ÿ”˜ The Definitive Guide to ARMยฎ Cortexยฎ-M0 and Cortex-M0+ Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780128032787/) -- [๐Ÿ”˜ The Definitive Guide to ARMยฎ Cortexยฎ-M3 and Cortexยฎ-M4 Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780124080829/) -- [๐Ÿ”˜ Build an 8-bit computer from scratch](https://eater.net/8bit/) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://a.co/d/8YPUXG7) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb) +- [๐Ÿ“˜ Computer Organization and Embedded Systems - Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian](https://a.co/d/2lt4Svf) +- [๐Ÿ“˜ Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/) +- [๐Ÿ“˜ Embedded Systems Architecture - Daniele Lacamera](https://www.packtpub.com/product/embedded-systems-architecture-second-edition/9781803239545) +- [๐Ÿ“˜ The Definitive Guide to ARMยฎ Cortexยฎ-M0 and Cortex-M0+ Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780128032787/) +- [๐Ÿ“˜ The Definitive Guide to ARMยฎ Cortexยฎ-M3 and Cortexยฎ-M4 Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780124080829/) +- [๐Ÿ”— Build an 8-bit computer from scratch](https://eater.net/8bit/) _________________ @@ -247,19 +252,19 @@ Embedded systems often require specialized test equipment to verify their functi #### ๐Ÿ”ต Multimeter -- [๐Ÿ‘ถ Learn How to Use a Multimeter!](https://youtu.be/4lAyzRxsbDc) -- [๐Ÿ‘ถ How to Use a Multimeter ](https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter/all) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Learn How to Use a Multimeter!](https://youtu.be/4lAyzRxsbDc) +- [๐Ÿ“๐Ÿ‘ถ How to Use a Multimeter ](https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter/all) #### ๐Ÿ”ต Logic / Protocol Analyzer -- [๐Ÿ”˜ Instrument Basics: Logic Analyzer](https://youtu.be/u1DYs2I-_lU) +- [๐ŸŽž๏ธ Instrument Basics: Logic Analyzer](https://youtu.be/u1DYs2I-_lU) #### ๐Ÿ”ต Oscilloscope -- [๐Ÿ‘ถ Whatโ€™s an OSCILLOSCOPE?](https://youtu.be/DgYGRtkd9Vs) -- [๐Ÿ‘ถ How to Use an Oscilloscope](https://youtu.be/u4zyptPLlJI) -- [๐Ÿ‘ถ How to use an oscilloscope / What is an oscilloscope / Oscilloscope tutorial](https://youtu.be/CzY2abWCVTY) -- [๐Ÿ”˜ Understanding EMI Debugging with Oscilloscopes](https://www.youtube.com/watch?v=x1rn5YNLmVw) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Whatโ€™s an OSCILLOSCOPE?](https://youtu.be/DgYGRtkd9Vs) +- [๐ŸŽž๏ธ๐Ÿ‘ถ How to Use an Oscilloscope](https://youtu.be/u4zyptPLlJI) +- [๐ŸŽž๏ธ๐Ÿ‘ถ How to use an oscilloscope / What is an oscilloscope / Oscilloscope tutorial](https://youtu.be/CzY2abWCVTY) +- [๐ŸŽž๏ธ Understanding EMI Debugging with Oscilloscopes](https://www.youtube.com/watch?v=x1rn5YNLmVw) _________________ @@ -271,39 +276,39 @@ While hardware design and prototyping are primarily the responsibility of electr Breadboarding 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. -- [๐Ÿ‘ถ Everything You Need to Know about Breadboards](https://www.youtube.com/watch?v=mE33WpRWrXs) -- [๐Ÿ‘ถ How to Use a Breadboard](https://youtu.be/6WReFkfrUIk) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Everything You Need to Know about Breadboards](https://www.youtube.com/watch?v=mE33WpRWrXs) +- [๐ŸŽž๏ธ๐Ÿ‘ถ How to Use a Breadboard](https://youtu.be/6WReFkfrUIk) #### ๐Ÿ”ต Hardware Design Basics -- [๐Ÿ‘ถ ๐Ÿ’Ž Hardware Design - Philโ€™s Lab (YouTube Playlist)](https://www.youtube.com/playlist?list=PLXSyc11qLa1YhVCZ5xWPuPsE5MkgEy5TF) -- [๐Ÿ”˜ Electronic Circuit Design - IFE - TU Graz (YouTube Playlist)](https://www.youtube.com/playlist?list=PLLpZ1DoEuR9tbV8r8bMSI94znm6pRB905) -- [๐Ÿ”˜ Microcontroller-Based Hardware Design With Altium Designer (YouTube Playlist)](https://www.youtube.com/playlist?list=PL3aaAq2OJU5HcbClqrOhqBDozF7HmxV-s) +- [๐ŸŽž๏ธ๐Ÿ‘ถ๐Ÿ’Ž Hardware Design - Philโ€™s Lab (YouTube Playlist)](https://www.youtube.com/playlist?list=PLXSyc11qLa1YhVCZ5xWPuPsE5MkgEy5TF) +- [๐ŸŽž๏ธ Electronic Circuit Design - IFE - TU Graz (YouTube Playlist)](https://www.youtube.com/playlist?list=PLLpZ1DoEuR9tbV8r8bMSI94znm6pRB905) +- [๐ŸŽž๏ธ Microcontroller-Based Hardware Design With Altium Designer (YouTube Playlist)](https://www.youtube.com/playlist?list=PL3aaAq2OJU5HcbClqrOhqBDozF7HmxV-s) #### ๐Ÿ”ต PCB Design / EMC -- [๐Ÿ”˜ Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy) -- [๐Ÿ”˜ Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec) -- [๐Ÿ‘ถ Altium Tutorials for Beginners - Robert Feranec (YouTube Playlist)](https://www.youtube.com/playlist?list=PLXvLToQzgzdduBaD4horowdWgcG5uGUW4) -- [๐Ÿ‘ถ Create PCBs for Rapid Prototyping - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRVK1RpHIjyjuTxn5srz6XM) -- [๐Ÿ”˜ How to Make a Raspberry Pi Compute Module 4 Carrier Board - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRwjr761b-MLNEu8FA8WKSG) -- [๐Ÿ”˜ How To Learn PCB Design (My Thoughts, Journey, and Resources) - Phil's Lab #87](https://youtu.be/aODkA2mrimQ) -- [๐Ÿ‘ถ KiCad 6 STM32 PCB Design Full Tutorial - Phil's Lab #65](https://youtu.be/aVUqaB0IMh4) -- [๐Ÿ‘ถ Intro to KiCad - DigiKey (YouTube Playlist)](https://www.youtube.com/watch?v=vaCVh2SAZY4&list=PLEBQazB0HUyR24ckSZ5u05TZHV9khgA1O) -- [๐Ÿ”˜ PCB Design for EMI & SI - Phil's Lab #64](https://www.youtube.com/watch?v=VtzPL8wQ8-E) -- [๐Ÿ”˜ PCB Design for Advanced Users (YouTube Playlist)](https://youtube.com/playlist?list=PL3aaAq2OJU5EWfYT_Z93tc9pBF_Sidba_) -- [๐Ÿ”˜ 9 Simple Tricks to Improve EMC / EMI on Your Boards - Practical examples (with Min Zhang)](https://www.youtube.com/watch?v=Lf51sx6sC0I) -- [๐Ÿ”˜ Many EMC Tips to Help You Design Better PCB Boards (with Keith Armstrong)](https://www.youtube.com/watch?v=gHF5JyJF-N4) -- [๐Ÿ”˜ LearnEMC - EMC Resources](https://learnemc.com/emc-resources) +- [๐ŸŽž๏ธ Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy) +- [๐ŸŽž๏ธ Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Altium Tutorials for Beginners - Robert Feranec (YouTube Playlist)](https://www.youtube.com/playlist?list=PLXvLToQzgzdduBaD4horowdWgcG5uGUW4) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Create PCBs for Rapid Prototyping - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRVK1RpHIjyjuTxn5srz6XM) +- [๐ŸŽž๏ธ How to Make a Raspberry Pi Compute Module 4 Carrier Board - DigiKey (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyRwjr761b-MLNEu8FA8WKSG) +- [๐ŸŽž๏ธ How To Learn PCB Design (My Thoughts, Journey, and Resources) - Phil's Lab #87](https://youtu.be/aODkA2mrimQ) +- [๐ŸŽž๏ธ๐Ÿ‘ถ KiCad 6 STM32 PCB Design Full Tutorial - Phil's Lab #65](https://youtu.be/aVUqaB0IMh4) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Intro to KiCad - DigiKey (YouTube Playlist)](https://www.youtube.com/watch?v=vaCVh2SAZY4&list=PLEBQazB0HUyR24ckSZ5u05TZHV9khgA1O) +- [๐ŸŽž๏ธ PCB Design for EMI & SI - Phil's Lab #64](https://www.youtube.com/watch?v=VtzPL8wQ8-E) +- [๐ŸŽž๏ธ PCB Design for Advanced Users (YouTube Playlist)](https://youtube.com/playlist?list=PL3aaAq2OJU5EWfYT_Z93tc9pBF_Sidba_) +- [๐ŸŽž๏ธ 9 Simple Tricks to Improve EMC / EMI on Your Boards - Practical examples (with Min Zhang)](https://www.youtube.com/watch?v=Lf51sx6sC0I) +- [๐ŸŽž๏ธ Many EMC Tips to Help You Design Better PCB Boards (with Keith Armstrong)](https://www.youtube.com/watch?v=gHF5JyJF-N4) +- [๐Ÿ”— LearnEMC - EMC Resources](https://learnemc.com/emc-resources) #### ๐Ÿ”ต Soldering / Rework -- [๐Ÿ‘ถ How To Solder - Electronics with Becky Stern | Digi-Key Electronics](https://www.youtube.com/watch?v=sS4v2hIFp9I) -- [๐Ÿ‘ถ HOW TO SOLDER! (Beginner's Guide)](https://www.youtube.com/watch?v=3jAw41LRBxU) -- [๐Ÿ‘ถ Soldering Crash Course: Basic Techniques, Tips and Advice!](https://www.youtube.com/watch?v=6rmErwU5E-k) -- [๐Ÿ”˜ How to Solder Through-Hole Components - Another Teaching Moment | DigiKey Electronics](https://www.youtube.com/watch?v=DJH7VLGJ4fs) -- [๐Ÿ”˜ How to Solder QFN MLF Package by Hand (Using a Hot Air Rework Station) | Digi-Key Electronics](https://youtu.be/X3Rc1s6EpSI) -- [๐Ÿ”˜ From Solderless Breadboard to Soldered Circuit - Electronics with Becky Stern | Digi-Key Electronics](https://www.youtube.com/watch?v=F9Krq7seV1g) +- [๐ŸŽž๏ธ๐Ÿ‘ถ How To Solder - Electronics with Becky Stern | Digi-Key Electronics](https://www.youtube.com/watch?v=sS4v2hIFp9I) +- [๐ŸŽž๏ธ๐Ÿ‘ถ HOW TO SOLDER! (Beginner's Guide)](https://www.youtube.com/watch?v=3jAw41LRBxU) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Soldering Crash Course: Basic Techniques, Tips and Advice!](https://www.youtube.com/watch?v=6rmErwU5E-k) +- [๐ŸŽž๏ธ How to Solder Through-Hole Components - Another Teaching Moment | DigiKey Electronics](https://www.youtube.com/watch?v=DJH7VLGJ4fs) +- [๐ŸŽž๏ธ How to Solder QFN MLF Package by Hand (Using a Hot Air Rework Station) | Digi-Key Electronics](https://youtu.be/X3Rc1s6EpSI) +- [๐ŸŽž๏ธ From Solderless Breadboard to Soldered Circuit - Electronics with Becky Stern | Digi-Key Electronics](https://www.youtube.com/watch?v=F9Krq7seV1g) _________________ @@ -311,13 +316,13 @@ _________________ FPGAs (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. -- [๐Ÿ”˜ FPGA / ASIC Engineering Roadmap](https://github.com/m3y54m/FPGA-ASIC-Roadmap) -- [๐Ÿ”˜ What are FPGAs?](https://hackaday.io/project/27550-the-hobbyists-guide-to-fpgas/log/68114-what-are-fpgas) -- [๐Ÿ”˜ FPGA vs. Microcontroller: How to choose the right one for your project](https://www.youtube.com/watch?v=jblpHUCPQYs) -- [๐Ÿ”˜ Introduction to FPGA (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb) -- [๐Ÿ”˜ FPGA Fundamentals - Nandland](https://nandland.com/fpga-101/) -- [๐Ÿ’Ž Coursera โ€“ FPGA Design for Embedded Systems Specialization](https://www.coursera.org/specializations/fpga-design) -- [๐Ÿ’Ž A Hands-On Guide to Designing Embedded Systems - Adam Taylor, Dan Binnun, Saket Srivastava](https://www.amazon.com/Hands-Guide-Designing-Embedded-Systems/dp/1630816833) +- [๐Ÿ”— FPGA / ASIC Engineering Roadmap](https://github.com/m3y54m/FPGA-ASIC-Roadmap) +- [๐Ÿ“ What are FPGAs?](https://hackaday.io/project/27550-the-hobbyists-guide-to-fpgas/log/68114-what-are-fpgas) +- [๐Ÿ“ FPGA vs. Microcontroller: How to choose the right one for your project](https://www.youtube.com/watch?v=jblpHUCPQYs) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Introduction to FPGA (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb) +- [๐Ÿ”—๐Ÿ‘ถ FPGA Fundamentals - Nandland](https://nandland.com/fpga-101/) +- [๐ŸŽž๏ธ๐Ÿ’Ž Coursera โ€“ FPGA Design for Embedded Systems Specialization](https://www.coursera.org/specializations/fpga-design) +- [๐Ÿ“˜๐Ÿ’Ž A Hands-On Guide to Designing Embedded Systems - Adam Taylor, Dan Binnun, Saket Srivastava](https://www.amazon.com/Hands-Guide-Designing-Embedded-Systems/dp/1630816833) _________________ @@ -325,35 +330,35 @@ _________________ #### ๐Ÿ”ต Algorithms & Data Structures -- [๐Ÿ‘ถ ๐Ÿ’Ž Grokking Algorithms - Aditya Y. Bhargava](https://www.manning.com/books/grokking-algorithms) -- [๐Ÿ’Ž Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein](http://mitpress.mit.edu/9780262367509/introduction-to-algorithms/) -- [๐Ÿ”˜ Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes](https://github.com/TheAlgorithms/C) -- [๐Ÿ”˜ Udemy โ€“ Embedded Systems State Machines & Data Structures](https://www.udemy.com/course/embedded-systems-state-machines-data-structures-like-a-pro/) -- [๐Ÿ”˜ Data Structures in C](https://www.sanfoundry.com/c-programming-examples-data-structures/) -- [๐Ÿ”˜ Data Structures - Full Course Using C and C++](https://www.youtube.com/watch?v=B31LgI4Y4DQ) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Grokking Algorithms - Aditya Y. Bhargava](https://www.manning.com/books/grokking-algorithms) +- [๐Ÿ“˜๐Ÿ’Ž Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein](http://mitpress.mit.edu/9780262367509/introduction-to-algorithms/) +- [๐Ÿ”— Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes](https://github.com/TheAlgorithms/C) +- [๐ŸŽž๏ธ Udemy โ€“ Embedded Systems State Machines & Data Structures](https://www.udemy.com/course/embedded-systems-state-machines-data-structures-like-a-pro/) +- [๐Ÿ”— Data Structures in C](https://www.sanfoundry.com/c-programming-examples-data-structures/) +- [๐ŸŽž๏ธ Data Structures - Full Course Using C and C++](https://www.youtube.com/watch?v=B31LgI4Y4DQ) #### ๐Ÿ”ต Design Patterns -- [๐Ÿ”˜ Practical Design Patterns: Opaque Pointers and Objects in C](https://interrupt.memfault.com/blog/opaque-pointers) -- [๐Ÿ’Ž Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https://www.oreilly.com/library/view/design-patterns-for/9781856177078/) -- [๐Ÿ’Ž Making Embedded Systems: Design Patterns for Great Software - Elecia White](https://www.oreilly.com/library/view/making-embedded-systems/9781449308889/) +- [๐Ÿ“ Practical Design Patterns: Opaque Pointers and Objects in C](https://interrupt.memfault.com/blog/opaque-pointers) +- [๐Ÿ“˜๐Ÿ’Ž Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https://www.oreilly.com/library/view/design-patterns-for/9781856177078/) +- [๐Ÿ“˜๐Ÿ’Ž Making Embedded Systems: Design Patterns for Great Software - Elecia White](https://www.oreilly.com/library/view/making-embedded-systems/9781449308889/) #### ๐Ÿ”ต State Machines / UML -- [๐Ÿ”˜ Programming embedded systems the easy way โ€“ with state machines](https://www.embedded.com/programming-embedded-systems-the-easy-way-with-state-machines/) -- [๐Ÿ”˜ State Machines (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chxym7TgIPV9k5E8YJtSBToI) -- [๐Ÿ”˜ Event-Driven Programming (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chx8Y7Oq2gOE0NUPXmQxu2Wr) -- [๐Ÿ”˜ Embedded System Design using UML State Machines](https://www.udemy.com/course/embedded-system-design-using-uml-state-machines/) +- [๐Ÿ“ Programming embedded systems the easy way โ€“ with state machines](https://www.embedded.com/programming-embedded-systems-the-easy-way-with-state-machines/) +- [๐ŸŽž๏ธ State Machines (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chxym7TgIPV9k5E8YJtSBToI) +- [๐ŸŽž๏ธ Event-Driven Programming (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chx8Y7Oq2gOE0NUPXmQxu2Wr) +- [๐ŸŽž๏ธ Udemy - Embedded System Design using UML State Machines](https://www.udemy.com/course/embedded-system-design-using-uml-state-machines/) #### ๐Ÿ”ต Memory Management -- [๐Ÿ”˜ Understanding the C runtime memory model](https://www.youtube.com/watch?v=3F3lp_F2YpQ) -- [๐Ÿ”˜ Pointers and dynamic memory - stack vs heap](https://www.youtube.com/watch?v=_8-ht2AKyH4) -- [๐Ÿ”˜ Dynamic Memory Allocation | C Programming Tutorial](https://www.youtube.com/watch?v=R0qIYWo8igs) -- [๐Ÿ”˜ Dynamic memory allocation in C - malloc calloc realloc free](https://www.youtube.com/watch?v=xDVC3wKjS64&t=140s) -- [๐Ÿ”˜ What is Memory Leak in C/C++? How can we avoid?](https://aticleworld.com/what-is-memory-leak-in-c-c-how-can-we-avoid/) -- [๐Ÿ”˜ Understanding Memory Management in Rust](https://medium.com/geekculture/understanding-memory-management-in-rust-a341cfce9807) -- [๐Ÿ”˜ Memory Management in Python](https://realpython.com/python-memory-management/) +- [๐ŸŽž๏ธ Understanding the C runtime memory model](https://www.youtube.com/watch?v=3F3lp_F2YpQ) +- [๐ŸŽž๏ธ Pointers and dynamic memory - stack vs heap](https://www.youtube.com/watch?v=_8-ht2AKyH4) +- [๐ŸŽž๏ธ Dynamic Memory Allocation | C Programming Tutorial](https://www.youtube.com/watch?v=R0qIYWo8igs) +- [๐ŸŽž๏ธ Dynamic memory allocation in C - malloc calloc realloc free](https://www.youtube.com/watch?v=xDVC3wKjS64&t=140s) +- [๐Ÿ“ What is Memory Leak in C/C++? How can we avoid?](https://aticleworld.com/what-is-memory-leak-in-c-c-how-can-we-avoid/) +- [๐Ÿ“ Understanding Memory Management in Rust](https://medium.com/geekculture/understanding-memory-management-in-rust-a341cfce9807) +- [๐Ÿ“ Memory Management in Python](https://realpython.com/python-memory-management/) _________________ @@ -361,70 +366,70 @@ _________________ #### ๐Ÿ”ต C -- [๐Ÿ‘ถ Microchip University - Syntax And Structure of C - Simply C](https://mu.microchip.com/syntax-and-structure-of-c) -- [๐Ÿ’Ž Microchip University - Advanced C Programming](https://mu.microchip.com/advanced-c-programming) -- [๐Ÿ’Ž Microchip University - Advanced Embedded C Tips, Tricks, and Cautions](https://mu.microchip.com/advanced-embedded-c-tips-tricks-and-cautions) -- [๐Ÿ’Ž Microchip University - C Programming: Linked List Data Structures](https://mu.microchip.com/c-programming-linked-list-data-structures) -- [๐Ÿ’Ž Microchip University - C Programming Callbacks](https://mu.microchip.com/c-programming-callbacks) -- [๐Ÿ‘ถ C Programming for Beginners | Full Course](https://www.youtube.com/watch?v=ssJY5MDLjlo) -- [๐Ÿ”˜ C Programming Tutorials (YouTube Playlist)](https://www.youtube.com/playlist?list=PLA1FTfKBAEX4hblYoH6mnq0zsie2w6Wif) -- [๐Ÿ’Ž The C Programming Language - Brian W. Kernighan, Dennis M. Ritchie ](https://www.amazon.com/dp/0131103628?ref_=cm_sw_r_cp_ud_dp_KRZ8M1WTXWVG0HMSRBXA) -- [๐Ÿ”˜ C How to Program - Paul Deitel, Harvey Deitel ](https://deitel.com/c-how-to-program-9-e/) -- [๐Ÿ”˜ Effective C - An Introduction to Professional C Programming - Robert C. Seacord](https://nostarch.com/Effective_C) -- [๐Ÿ”˜ Embedded C Coding Standard](https://barrgroup.com/embedded-systems/books/embedded-c-coding-standard) -- [๐Ÿ”˜ newlib C Library Documentation](https://sourceware.org/newlib/docs.html) -- [๐Ÿ”˜ The GNU C Library (glibc)](https://www.gnu.org/software/libc/documentation.html) -- [๐Ÿ”˜ From Zero to main(): Bare metal C](https://interrupt.memfault.com/blog/zero-to-main-1) -- [๐Ÿ”˜ From Zero to main(): Bootstrapping libc with Newlib](https://interrupt.memfault.com/blog/boostrapping-libc-with-newlib) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - Syntax And Structure of C - Simply C](https://mu.microchip.com/syntax-and-structure-of-c) +- [๐ŸŽž๏ธ๐Ÿ’Ž Microchip University - Advanced C Programming](https://mu.microchip.com/advanced-c-programming) +- [๐ŸŽž๏ธ๐Ÿ’Ž Microchip University - Advanced Embedded C Tips, Tricks, and Cautions](https://mu.microchip.com/advanced-embedded-c-tips-tricks-and-cautions) +- [๐ŸŽž๏ธ๐Ÿ’Ž Microchip University - C Programming: Linked List Data Structures](https://mu.microchip.com/c-programming-linked-list-data-structures) +- [๐ŸŽž๏ธ๐Ÿ’Ž Microchip University - C Programming Callbacks](https://mu.microchip.com/c-programming-callbacks) +- [๐ŸŽž๏ธ๐Ÿ‘ถ C Programming for Beginners | Full Course](https://www.youtube.com/watch?v=ssJY5MDLjlo) +- [๐ŸŽž๏ธ C Programming Tutorials (YouTube Playlist)](https://www.youtube.com/playlist?list=PLA1FTfKBAEX4hblYoH6mnq0zsie2w6Wif) +- [๐Ÿ“˜๐Ÿ’Ž The C Programming Language - Brian W. Kernighan, Dennis M. Ritchie ](https://www.amazon.com/dp/0131103628?ref_=cm_sw_r_cp_ud_dp_KRZ8M1WTXWVG0HMSRBXA) +- [๐Ÿ“˜ C How to Program - Paul Deitel, Harvey Deitel ](https://deitel.com/c-how-to-program-9-e/) +- [๐Ÿ“˜ Effective C - An Introduction to Professional C Programming - Robert C. Seacord](https://nostarch.com/Effective_C) +- [๐Ÿ”— Embedded C Coding Standard](https://barrgroup.com/embedded-systems/books/embedded-c-coding-standard) +- [๐Ÿ”— newlib C Library Documentation](https://sourceware.org/newlib/docs.html) +- [๐Ÿ”— The GNU C Library (glibc)](https://www.gnu.org/software/libc/documentation.html) +- [๐Ÿ“ From Zero to main(): Bare metal C](https://interrupt.memfault.com/blog/zero-to-main-1) +- [๐Ÿ“ From Zero to main(): Bootstrapping libc with Newlib](https://interrupt.memfault.com/blog/boostrapping-libc-with-newlib) #### ๐Ÿ”ต C++ -- [๐Ÿ”˜ Modern C++ in Embedded Development: (Don't Fear) The ++](https://www.embeddedrelated.com/showarticle/1532.php) -- [๐Ÿ”˜ C++ On Embedded Systems](https://blog.mbedded.ninja/programming/languages/c-plus-plus/cpp-on-embedded-systems/) -- [๐Ÿ‘ถ C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y) -- [๐Ÿ”˜ C++ by The Cherno (YouTube Playlist)](https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb) -- [๐Ÿ’Ž Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming - Christopher Kormanyos](https://link.springer.com/book/10.1007/978-3-662-62996-3) -- [๐Ÿ”˜ Effective Modern C++ - Scott Meyers](https://www.oreilly.com/library/view/effective-modern-c/9781491908419/) +- [๐Ÿ“ Modern C++ in Embedded Development: (Don't Fear) The ++](https://www.embeddedrelated.com/showarticle/1532.php) +- [๐Ÿ“ C++ On Embedded Systems](https://blog.mbedded.ninja/programming/languages/c-plus-plus/cpp-on-embedded-systems/) +- [๐ŸŽž๏ธ๐Ÿ‘ถ C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y) +- [๐ŸŽž๏ธ C++ by The Cherno (YouTube Playlist)](https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb) +- [๐Ÿ“˜๐Ÿ’Ž Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming - Christopher Kormanyos](https://link.springer.com/book/10.1007/978-3-662-62996-3) +- [๐Ÿ“˜ Effective Modern C++ - Scott Meyers](https://www.oreilly.com/library/view/effective-modern-c/9781491908419/) #### ๐Ÿ”ต Assembly -- [๐Ÿ‘ถ Introduction to ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/) -- [๐Ÿ”˜ Udemy โ€“ ARM GNU Assembly Programming From Ground Up](https://www.udemy.com/course/arm-gnu-assembly-programming-from-ground-uptm/) -- [๐Ÿ”˜ Assembly Language Programming with ARM โ€“ Full Tutorial for Beginners](https://www.youtube.com/watch?v=gfmRrPjnEw4) -- [๐Ÿ”˜ How to Use Inline Assembly Language in C Code](https://gcc.gnu.org/onlinedocs/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.html) +- [๐Ÿ“๐Ÿ‘ถ Introduction to ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/) +- [๐ŸŽž๏ธ Udemy โ€“ ARM GNU Assembly Programming From Ground Up](https://www.udemy.com/course/arm-gnu-assembly-programming-from-ground-uptm/) +- [๐ŸŽž๏ธ Assembly Language Programming with ARM โ€“ Full Tutorial for Beginners](https://www.youtube.com/watch?v=gfmRrPjnEw4) +- [๐Ÿ“ How to Use Inline Assembly Language in C Code](https://gcc.gnu.org/onlinedocs/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.html) #### ๐Ÿ”ต Python -- [๐Ÿ”˜ Python for embedded systems testing](https://www.elsys-design.com/en/python-embedded-systems-testing/) -- [๐Ÿ‘ถ The Python Handbook โ€“ Learn Python for Beginners](https://www.freecodecamp.org/news/the-python-handbook/) -- [๐Ÿ’Ž Real Python: Python Tutorials](https://realpython.com/) -- [๐Ÿ‘ถ ๐Ÿ’Ž Python Crash Course - Eric Matthes](https://a.co/d/hSMTJwE) +- [๐Ÿ“ Python for embedded systems testing](https://www.elsys-design.com/en/python-embedded-systems-testing/) +- [๐Ÿ“๐Ÿ‘ถ The Python Handbook โ€“ Learn Python for Beginners](https://www.freecodecamp.org/news/the-python-handbook/) +- [๐Ÿ”—๐Ÿ’Ž Real Python: Python Tutorials](https://realpython.com/) +- [๐Ÿ“˜๐Ÿ‘ถ๐Ÿ’Ž Python Crash Course - Eric Matthes](https://a.co/d/hSMTJwE) ##### ๐Ÿ”ถ Python for Microcontrollers -- [๐Ÿ”˜ MicroPython - Python for microcontrollers](https://micropython.org/) -- [๐Ÿ”˜ MicroPython 101 | Arduino Documentation](https://docs.arduino.cc/micropython-course/) -- [๐Ÿ”˜ CircuitPython](https://circuitpython.org/) -- [๐Ÿ”˜ The Pros and Cons of Designing Embedded Systems with MicroPython](https://www.designnews.com/electronics-test/pros-and-cons-designing-embedded-systems-micropython) +- [๐Ÿ”— MicroPython - Python for microcontrollers](https://micropython.org/) +- [๐Ÿ”— MicroPython 101 | Arduino Documentation](https://docs.arduino.cc/micropython-course/) +- [๐Ÿ”— CircuitPython](https://circuitpython.org/) +- [๐Ÿ“ The Pros and Cons of Designing Embedded Systems with MicroPython](https://www.designnews.com/electronics-test/pros-and-cons-designing-embedded-systems-micropython) #### ๐Ÿ”ต Rust -- [๐Ÿ”˜ 5 roadblocks to Rust adoption in embedded systems](https://www.embedded.com/5-roadblocks-to-rust-adoption-in-embedded-systems/) -- [๐Ÿ”˜ The Embedded Rust Book](https://docs.rust-embedded.org/book/) -- [๐Ÿ”˜ The Future of Programming: Rust (YouTube Playlist)](https://www.youtube.com/playlist?list=PLc7W4b0WHTAUAEAguiqpNa5H0QqXJIJI6) -- [๐Ÿ”˜ Community Rust support projects for STM32 microcontrollers](https://github.com/stm32-rs) -- [๐Ÿ”˜ Rust on ESP Community](https://github.com/esp-rs) -- [๐Ÿ”˜ Rust on STM32: Getting started](https://jonathanklimt.de/electronics/programming/embedded-rust/rust-on-stm32-2/) -- [๐Ÿ”˜ From Zero to main(): Bare metal Rust](https://interrupt.memfault.com/blog/zero-to-main-rust-1) -- [๐Ÿ”˜ Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/) -- [๐Ÿ”˜ Kernel Driver with Rust in 2022](https://not-matthias.github.io/posts/kernel-driver-with-rust/) +- [๐Ÿ“ 5 roadblocks to Rust adoption in embedded systems](https://www.embedded.com/5-roadblocks-to-rust-adoption-in-embedded-systems/) +- [๐Ÿ”— The Embedded Rust Book](https://docs.rust-embedded.org/book/) +- [๐ŸŽž๏ธ The Future of Programming: Rust (YouTube Playlist)](https://www.youtube.com/playlist?list=PLc7W4b0WHTAUAEAguiqpNa5H0QqXJIJI6) +- [๐Ÿ”— Community Rust support projects for STM32 microcontrollers](https://github.com/stm32-rs) +- [๐Ÿ”— Rust on ESP Community](https://github.com/esp-rs) +- [๐Ÿ“ Rust on STM32: Getting started](https://jonathanklimt.de/electronics/programming/embedded-rust/rust-on-stm32-2/) +- [๐Ÿ“ From Zero to main(): Bare metal Rust](https://interrupt.memfault.com/blog/zero-to-main-rust-1) +- [๐Ÿ“ Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/) +- [๐Ÿ“ Kernel Driver with Rust in 2022](https://not-matthias.github.io/posts/kernel-driver-with-rust/) #### ๐Ÿ”ต Zig -- [๐Ÿ”˜ Testing Zig for embedded development](https://www.kuon.ch/post/2022-06-22-zig-embed/) -- [๐Ÿ”˜ Zig Embedded Group](https://github.com/ZigEmbeddedGroup) -- [๐Ÿ”˜ MicroZig - Unified abstraction layer and HAL for several microcontrollers](https://github.com/ZigEmbeddedGroup/microzig) -- [๐Ÿ”˜ Zig Bare Metal Programming on STM32F103 โ€” Booting up](https://maldus512.medium.com/zig-bare-metal-programming-on-stm32f103-booting-up-b0ecdcf0de35) +- [๐Ÿ“ Testing Zig for embedded development](https://www.kuon.ch/post/2022-06-22-zig-embed/) +- [๐Ÿ”— Zig Embedded Group](https://github.com/ZigEmbeddedGroup) +- [๐Ÿ”— MicroZig - Unified abstraction layer and HAL for several microcontrollers](https://github.com/ZigEmbeddedGroup/microzig) +- [๐Ÿ“ Zig Bare Metal Programming on STM32F103 โ€” Booting up](https://maldus512.medium.com/zig-bare-metal-programming-on-stm32f103-booting-up-b0ecdcf0de35) _________________ @@ -434,94 +439,94 @@ Microcontrollers are integrated circuits (ICs) that combine a microprocessor, me Some 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/output capabilities. Consider ease of use, cost, reliability, availability, and future expansion. -- [๐Ÿ”˜ What Is a Microcontroller? The Defining Characteristics and Architecture of a Common Component](https://www.allaboutcircuits.com/technical-articles/what-is-a-microcontroller-introduction-component-characteristics-component/) -- [๐Ÿ”˜ How to Choose the Right Microcontroller for Your Application ](https://www.allaboutcircuits.com/technical-articles/how-to-choose-the-right-microcontroller-for-your-application/) -- [๐Ÿ”˜ How to Read a Microcontroller Datasheet: Introduction and First Steps](https://www.allaboutcircuits.com/technical-articles/how-to-read-a-microcontroller-datasheet-introduction-and-first-steps2/) -- [๐Ÿ‘ถ Make: AVR Programming - Elliot Williams](https://www.oreilly.com/library/view/make-avr-programming/9781449356484/) -- [๐Ÿ‘ถ ๐Ÿ’Ž NewbieHack - Microcontroller Tutorial - A Beginners Guide (AVR)](https://www.youtube.com/playlist?list=PLE72E4CFE73BD1DE1) -- [๐Ÿ‘ถ Getting Started with STM32 and Nucleo (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv) -- [๐Ÿ’Ž Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32-2nd) -- [๐Ÿ‘ถ Intro to Raspberry Pi Pico and RP2040 (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQO6rJxKr2umPCgmfAU-cqR) -- [๐Ÿ”˜ Getting started with STM32: STM32 step-by-step](https://wiki.st.com/stm32mcu/wiki/Category:Getting_started_with_STM32_:_STM32_step_by_step) -- [๐Ÿ”˜ Getting Started With AVR (YouTube Playlist)](https://www.youtube.com/playlist?list=PLtQdQmNK_0DRhBWYZ32BEILOykXLpJ8tP) -- [๐Ÿ”˜ Fundamentals of Microcontrollers - Arduino bare-metal breakdown (YouTube Playlist)](https://www.youtube.com/playlist?list=PLNyfXcjhOAwOF-7S-ZoW2wuQ6Y-4hfjMR) -- [๐Ÿ”˜ Bare Metal Embedded Programming: Theory and Practice Using STM32 (YouTube Playlist)](https://www.youtube.com/playlist?list=PL4cGeWgaBTe155QQSQ72DksLIjBn5Jn2Z) -- [๐Ÿ”˜ Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay](https://link.springer.com/book/10.1007/978-1-4842-3624-6) -- [๐Ÿ”˜ Udemy โ€“ Microcontroller Embedded C Programming: Absolute Beginners](https://www.udemy.com/course/microcontroller-embedded-c-programming/) -- [๐Ÿ”˜ Udemy โ€“ Embedded Systems STM32 Low-Layer APIs(LL) Driver Development](https://www.udemy.com/course/embedded-systems-stm32-low-level-ll-driver-development/) -- [๐Ÿ”˜ Udemy โ€“ Embedded Systems STM32 HAL APIs Driver Development](https://www.udemy.com/course/embedded-systems-stm32-hal-apis-driver-development/) -- [๐Ÿ”˜ 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://link.springer.com/book/10.1007/978-3-030-88439-0) -- [๐Ÿ’Ž Embedded Systems Design using the MSP430FR2355 LaunchPad - Brock J. LaMeres](https://link.springer.com/book/10.1007/978-3-030-40574-8) -- [๐Ÿ’Ž Building Embedded Systems: Programmable Hardware - Changyi Gu](https://link.springer.com/book/10.1007/978-1-4842-1919-5) -- [๐Ÿ”˜ Awesome Embedded: A curated list of awesome embedded programming](https://github.com/nhivp/Awesome-Embedded) +- [๐Ÿ“ What Is a Microcontroller? The Defining Characteristics and Architecture of a Common Component](https://www.allaboutcircuits.com/technical-articles/what-is-a-microcontroller-introduction-component-characteristics-component/) +- [๐Ÿ“ How to Choose the Right Microcontroller for Your Application ](https://www.allaboutcircuits.com/technical-articles/how-to-choose-the-right-microcontroller-for-your-application/) +- [๐Ÿ“ How to Read a Microcontroller Datasheet: Introduction and First Steps](https://www.allaboutcircuits.com/technical-articles/how-to-read-a-microcontroller-datasheet-introduction-and-first-steps2/) +- [๐Ÿ“˜๐Ÿ‘ถ Make: AVR Programming - Elliot Williams](https://www.oreilly.com/library/view/make-avr-programming/9781449356484/) +- [๐ŸŽž๏ธ๐Ÿ‘ถ๐Ÿ’Ž NewbieHack - Microcontroller Tutorial - A Beginners Guide (AVR)](https://www.youtube.com/playlist?list=PLE72E4CFE73BD1DE1) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Getting Started with STM32 and Nucleo (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv) +- [๐Ÿ“˜๐Ÿ’Ž Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32-2nd) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Intro to Raspberry Pi Pico and RP2040 (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQO6rJxKr2umPCgmfAU-cqR) +- [๐Ÿ”— Getting started with STM32: STM32 step-by-step](https://wiki.st.com/stm32mcu/wiki/Category:Getting_started_with_STM32_:_STM32_step_by_step) +- [๐ŸŽž๏ธ Getting Started With AVR (YouTube Playlist)](https://www.youtube.com/playlist?list=PLtQdQmNK_0DRhBWYZ32BEILOykXLpJ8tP) +- [๐ŸŽž๏ธ Fundamentals of Microcontrollers - Arduino bare-metal breakdown (YouTube Playlist)](https://www.youtube.com/playlist?list=PLNyfXcjhOAwOF-7S-ZoW2wuQ6Y-4hfjMR) +- [๐ŸŽž๏ธ Bare Metal Embedded Programming: Theory and Practice Using STM32 (YouTube Playlist)](https://www.youtube.com/playlist?list=PL4cGeWgaBTe155QQSQ72DksLIjBn5Jn2Z) +- [๐Ÿ“˜ Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay](https://link.springer.com/book/10.1007/978-1-4842-3624-6) +- [๐ŸŽž๏ธ Udemy โ€“ Microcontroller Embedded C Programming: Absolute Beginners](https://www.udemy.com/course/microcontroller-embedded-c-programming/) +- [๐ŸŽž๏ธ Udemy โ€“ Embedded Systems STM32 Low-Layer APIs(LL) Driver Development](https://www.udemy.com/course/embedded-systems-stm32-low-level-ll-driver-development/) +- [๐ŸŽž๏ธ Udemy โ€“ Embedded Systems STM32 HAL APIs Driver Development](https://www.udemy.com/course/embedded-systems-stm32-hal-apis-driver-development/) +- [๐Ÿ“˜ 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://link.springer.com/book/10.1007/978-3-030-88439-0) +- [๐Ÿ“˜๐Ÿ’Ž Embedded Systems Design using the MSP430FR2355 LaunchPad - Brock J. LaMeres](https://link.springer.com/book/10.1007/978-3-030-40574-8) +- [๐Ÿ“˜๐Ÿ’Ž Building Embedded Systems: Programmable Hardware - Changyi Gu](https://link.springer.com/book/10.1007/978-1-4842-1919-5) +- [๐Ÿ”— Awesome Embedded: A curated list of awesome embedded programming](https://github.com/nhivp/Awesome-Embedded) #### ๐Ÿ”ต GPIO -- [๐Ÿ”˜ Tutorial 5: Peripheral 1 - General purpose Input Output (GPIO) Configuration in STM32](https://youtu.be/tjDhmavBGf0) +- [๐ŸŽž๏ธ Tutorial 5: Peripheral 1 - General purpose Input Output (GPIO) Configuration in STM32](https://youtu.be/tjDhmavBGf0) #### ๐Ÿ”ต ADC -- [๐Ÿ”˜ How Do ADCs Work? - The Learning Circuit](https://www.youtube.com/watch?v=g4BvbAKNQ90) -- [๐Ÿ”˜ Tutorial 13: ADC in STM32F4](https://youtu.be/vIlG_i3GqeU) -- [๐Ÿ”˜ Tutorial 14: ADC by Polling](https://www.youtube.com/watch?v=uUi6JyUuEJA) +- [๐ŸŽž๏ธ How Do ADCs Work? - The Learning Circuit](https://www.youtube.com/watch?v=g4BvbAKNQ90) +- [๐ŸŽž๏ธ Tutorial 13: ADC in STM32F4](https://youtu.be/vIlG_i3GqeU) +- [๐ŸŽž๏ธ Tutorial 14: ADC by Polling](https://www.youtube.com/watch?v=uUi6JyUuEJA) #### ๐Ÿ”ต DAC -- [๐Ÿ”˜ How Do DACs Work? - The Learning Circuit](https://www.youtube.com/watch?v=YAxrmoVtEtE) -- [๐Ÿ”˜ DAC in STM32 || Sine wave || HAL || CubeIDE](https://www.youtube.com/watch?v=6Z1L6ox63j0) +- [๐ŸŽž๏ธ How Do DACs Work? - The Learning Circuit](https://www.youtube.com/watch?v=YAxrmoVtEtE) +- [๐ŸŽž๏ธ DAC in STM32 || Sine wave || HAL || CubeIDE](https://www.youtube.com/watch?v=6Z1L6ox63j0) #### ๐Ÿ”ต Timers / Counters -- [๐Ÿ”˜ STM32 TIMERS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8gjLZBzjE3kKBMDEH_lUc428) +- [๐ŸŽž๏ธ STM32 TIMERS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8gjLZBzjE3kKBMDEH_lUc428) #### ๐Ÿ”ต PWM -- [๐Ÿ”˜ What is PWM?](https://www.youtube.com/watch?v=B_Ysdv1xRbA) -- [๐Ÿ”˜ STM32 Guide #3: PWM + Timers](https://www.youtube.com/watch?v=AjN58ceQaF4) +- [๐ŸŽž๏ธ What is PWM?](https://www.youtube.com/watch?v=B_Ysdv1xRbA) +- [๐ŸŽž๏ธ STM32 Guide #3: PWM + Timers](https://www.youtube.com/watch?v=AjN58ceQaF4) #### ๐Ÿ”ต Interrupts -- [๐Ÿ”˜ Polling/Interrupt/DMA differences explained easily](https://www.youtube.com/watch?v=LNPBr3WvuNg) -- [๐Ÿ”˜ Level Up Your Arduino Code: External Interrupts](https://www.youtube.com/watch?v=J61_PKyWjxU) -- [๐Ÿ”˜ Tutorial 10: Peripheral 2 - Nested Vector Interrupt controller (NVIC) in STM32](https://www.youtube.com/watch?v=qwebM-YaSU4) -- [๐Ÿ”˜ Tutorial 11: LAB - External Interrupt ( EXTI ) Interfacing in STM32 using STM32CUBEMX](https://www.youtube.com/watch?v=oJc0seuBbzI) -- [๐Ÿ”˜ Tutorial 12: Interrupt Priorities in STM32](https://www.youtube.com/watch?v=aXLJD4qJmtk) +- [๐ŸŽž๏ธ Polling/Interrupt/DMA differences explained easily](https://www.youtube.com/watch?v=LNPBr3WvuNg) +- [๐ŸŽž๏ธ Level Up Your Arduino Code: External Interrupts](https://www.youtube.com/watch?v=J61_PKyWjxU) +- [๐ŸŽž๏ธ Tutorial 10: Peripheral 2 - Nested Vector Interrupt controller (NVIC) in STM32](https://www.youtube.com/watch?v=qwebM-YaSU4) +- [๐ŸŽž๏ธ Tutorial 11: LAB - External Interrupt ( EXTI ) Interfacing in STM32 using STM32CUBEMX](https://www.youtube.com/watch?v=oJc0seuBbzI) +- [๐ŸŽž๏ธ Tutorial 12: Interrupt Priorities in STM32](https://www.youtube.com/watch?v=aXLJD4qJmtk) #### ๐Ÿ”ต Watchdog -- [๐Ÿ”˜ A Guide to Watchdog Timers for Embedded Systems](https://interrupt.memfault.com/blog/firmware-watchdog-best-practices) -- [๐Ÿ”˜ The Watchdog Timer on Arduino](https://www.youtube.com/watch?v=AzZBgH67mgE) -- [๐Ÿ”˜ WATCHDOGS in STM32 || IWDG and WWDG || CubeIDE](https://www.youtube.com/watch?v=AelNsnpfbcM) +- [๐Ÿ“ A Guide to Watchdog Timers for Embedded Systems](https://interrupt.memfault.com/blog/firmware-watchdog-best-practices) +- [๐ŸŽž๏ธ The Watchdog Timer on Arduino](https://www.youtube.com/watch?v=AzZBgH67mgE) +- [๐ŸŽž๏ธ WATCHDOGS in STM32 || IWDG and WWDG || CubeIDE](https://www.youtube.com/watch?v=AelNsnpfbcM) #### ๐Ÿ”ต Clock Management -- [๐Ÿ”˜ Clock Configuration in STM32](https://medium.com/@csrohit/clock-configuration-in-stm32-6a058da220e0) -- [๐Ÿ”˜ STM32: Change clock speed via registers](https://www.youtube.com/watch?v=W_9jPMgiqaQ) -- [๐Ÿ”˜ #1. Intro to STM32F4 Register Based Programming || Clock Setup || LED Blinking || NO HAL](https://www.youtube.com/watch?v=GJ_LFAlOlSk) -- [๐Ÿ”˜ Tutorial 8: MCU Clocks configuration in STM32 using STM32CUBEMX](https://www.youtube.com/watch?v=y8yNsWpQiTM) -- [๐Ÿ”˜ Clock sources and PLL in ARM Cortex M4](https://www.youtube.com/watch?v=2ou8FQ_7PdI) +- [๐Ÿ“ Clock Configuration in STM32](https://medium.com/@csrohit/clock-configuration-in-stm32-6a058da220e0) +- [๐ŸŽž๏ธ STM32: Change clock speed via registers](https://www.youtube.com/watch?v=W_9jPMgiqaQ) +- [๐ŸŽž๏ธ #1. Intro to STM32F4 Register Based Programming || Clock Setup || LED Blinking || NO HAL](https://www.youtube.com/watch?v=GJ_LFAlOlSk) +- [๐ŸŽž๏ธ Tutorial 8: MCU Clocks configuration in STM32 using STM32CUBEMX](https://www.youtube.com/watch?v=y8yNsWpQiTM) +- [๐ŸŽž๏ธ Clock sources and PLL in ARM Cortex M4](https://www.youtube.com/watch?v=2ou8FQ_7PdI) #### ๐Ÿ”ต DMA -- [๐Ÿ”˜ Introduction to Direct Memory Access (DMA)](https://www.youtube.com/watch?v=M16l_ymlfcs) -- [๐Ÿ”˜ STM32 DMA PT 1](https://www.youtube.com/watch?v=yvLHtXJ_KSg) -- [๐Ÿ”˜ STM32 DMA PT 2](https://www.youtube.com/watch?v=Kb8dX18xYuo) -- [๐Ÿ”˜ Getting Started With STM32 & Nucleo Part 4: Working with ADC and DMA - Maker.io](https://www.youtube.com/watch?v=EsZLgqhqfO0) -- [๐Ÿ”˜ STM32 UART DMA and IDLE LINE || Receive unknown length DATA](https://www.youtube.com/watch?v=Bo6MC5A8uTE) +- [๐ŸŽž๏ธ Introduction to Direct Memory Access (DMA)](https://www.youtube.com/watch?v=M16l_ymlfcs) +- [๐ŸŽž๏ธ STM32 DMA PT 1](https://www.youtube.com/watch?v=yvLHtXJ_KSg) +- [๐ŸŽž๏ธ STM32 DMA PT 2](https://www.youtube.com/watch?v=Kb8dX18xYuo) +- [๐ŸŽž๏ธ Getting Started With STM32 & Nucleo Part 4: Working with ADC and DMA - Maker.io](https://www.youtube.com/watch?v=EsZLgqhqfO0) +- [๐ŸŽž๏ธ STM32 UART DMA and IDLE LINE || Receive unknown length DATA](https://www.youtube.com/watch?v=Bo6MC5A8uTE) #### ๐Ÿ”ต Bootloader -- [๐Ÿ”˜ Basics to Developing Bootloader for Arduino](https://www.electronicwings.com/arduino/basics-to-developing-bootloader-for-arduino) -- [๐Ÿ”˜ From Zero to main(): How to Write a Bootloader from Scratch](https://interrupt.memfault.com/blog/how-to-write-a-bootloader-from-scratch) -- [๐Ÿ”˜ How to Create a Super Simple Bootloader](https://www.youtube.com/watch?v=OkUQ3iMmiYQ&list=PLnMKNibPkDnEb1sphpdFJ3bR9dNy7S6mO) -- [๐Ÿ”˜ Blinky To Bootloader: Bare Metal Programming Series (YouTube Playlist)](https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ) -- [๐Ÿ”˜ Simple AVR Bootloader tutorial](https://www.pocketmagic.net/simple-avr-bootloader-tutorial/) -- [๐Ÿ”˜ Udemy โ€“ STM32Fx Microcontroller Custom Bootloader Development](https://www.udemy.com/course/stm32f4-arm-cortex-mx-custom-bootloader-development/) +- [๐Ÿ“ Basics to Developing Bootloader for Arduino](https://www.electronicwings.com/arduino/basics-to-developing-bootloader-for-arduino) +- [๐Ÿ“ From Zero to main(): How to Write a Bootloader from Scratch](https://interrupt.memfault.com/blog/how-to-write-a-bootloader-from-scratch) +- [๐ŸŽž๏ธ How to Create a Super Simple Bootloader](https://www.youtube.com/watch?v=OkUQ3iMmiYQ&list=PLnMKNibPkDnEb1sphpdFJ3bR9dNy7S6mO) +- [๐ŸŽž๏ธ Blinky To Bootloader: Bare Metal Programming Series (YouTube Playlist)](https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ) +- [๐Ÿ“ Simple AVR Bootloader tutorial](https://www.pocketmagic.net/simple-avr-bootloader-tutorial/) +- [๐ŸŽž๏ธ Udemy โ€“ STM32Fx Microcontroller Custom Bootloader Development](https://www.udemy.com/course/stm32f4-arm-cortex-mx-custom-bootloader-development/) #### ๐Ÿ”ต Power Management -- [๐Ÿ”˜ SLEEP Mode in STM32F103 || CubeIDE || Low Power Mode || Current Consumption](https://www.youtube.com/watch?v=2rKcsGkCG0s) -- [๐Ÿ”˜ STOP MODE in STM32 || CubeIDE || Low Power Mode](https://www.youtube.com/watch?v=UtQhc4XV8k4) +- [๐ŸŽž๏ธ SLEEP Mode in STM32F103 || CubeIDE || Low Power Mode || Current Consumption](https://www.youtube.com/watch?v=2rKcsGkCG0s) +- [๐ŸŽž๏ธ STOP MODE in STM32 || CubeIDE || Low Power Mode](https://www.youtube.com/watch?v=UtQhc4XV8k4) _________________ @@ -531,208 +536,208 @@ Embedded systems often communicate with other devices or external systems via in #### ๐Ÿ”ต โ€ŒBasic Protocols -- [๐Ÿ‘ถ Understanding Serial Protocols](https://www.youtube.com/watch?v=LEz5UCN3aHA) -- [๐Ÿ”˜ PROTOCOLS: UART - I2C - SPI - Serial communications #001](https://www.youtube.com/watch?v=IyGwvGzrqp8) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Understanding Serial Protocols](https://www.youtube.com/watch?v=LEz5UCN3aHA) +- [๐ŸŽž๏ธ PROTOCOLS: UART - I2C - SPI - Serial communications #001](https://www.youtube.com/watch?v=IyGwvGzrqp8) ##### ๐Ÿ”ถ UART -- [๐Ÿ‘ถ Understanding UART](https://www.youtube.com/watch?v=sTHckUyxwp8) -- [๐Ÿ”˜ how does UART work??? (explained clearly)](https://www.youtube.com/watch?v=V6m2skVlsQI) -- [๐Ÿ”˜ Basics of UART Communication | UART Frame Structure | RS 232 Basics | Part1](https://www.youtube.com/watch?v=JuvWbRhhpdI) -- [๐Ÿ”˜ Understanding UART Communication Programming | UART Peripherals | Part 2](https://www.youtube.com/watch?v=QmjKRwgddxw) -- [๐Ÿ”˜ The RS-232 protocol](https://www.youtube.com/watch?v=AHYNxpqKqwo) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Understanding UART](https://www.youtube.com/watch?v=sTHckUyxwp8) +- [๐ŸŽž๏ธ how does UART work??? (explained clearly)](https://www.youtube.com/watch?v=V6m2skVlsQI) +- [๐ŸŽž๏ธ Basics of UART Communication | UART Frame Structure | RS 232 Basics | Part1](https://www.youtube.com/watch?v=JuvWbRhhpdI) +- [๐ŸŽž๏ธ Understanding UART Communication Programming | UART Peripherals | Part 2](https://www.youtube.com/watch?v=QmjKRwgddxw) +- [๐ŸŽž๏ธ The RS-232 protocol](https://www.youtube.com/watch?v=AHYNxpqKqwo) ##### ๐Ÿ”ถ I2C -- [๐Ÿ‘ถ Understanding I2C](https://www.youtube.com/watch?v=CAvawEcxoPU) -- [๐Ÿ”˜ I2C in a Nutshell](https://interrupt.memfault.com/blog/i2c-in-a-nutshell) -- [๐Ÿ”˜ STM32 I2C SLAVE (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8gj_P7Qb28aTr0t92uk_vwg0) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Understanding I2C](https://www.youtube.com/watch?v=CAvawEcxoPU) +- [๐Ÿ“ I2C in a Nutshell](https://interrupt.memfault.com/blog/i2c-in-a-nutshell) +- [๐ŸŽž๏ธ STM32 I2C SLAVE (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8gj_P7Qb28aTr0t92uk_vwg0) ##### ๐Ÿ”ถ SPI -- [๐Ÿ‘ถ Understanding SPI](https://www.youtube.com/watch?v=0nVNwozXsIc) -- [๐Ÿ”˜ SPI: The serial peripheral interface](https://www.youtube.com/watch?v=MCi7dCBhVpQ) -- [๐Ÿ”˜ Getting Started with STM32 and Nucleo Part 5: How to Use SPI | Digi-Key Electronics](https://www.youtube.com/watch?v=eFKeNPJq50g) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Understanding SPI](https://www.youtube.com/watch?v=0nVNwozXsIc) +- [๐ŸŽž๏ธ SPI: The serial peripheral interface](https://www.youtube.com/watch?v=MCi7dCBhVpQ) +- [๐ŸŽž๏ธ Getting Started with STM32 and Nucleo Part 5: How to Use SPI | Digi-Key Electronics](https://www.youtube.com/watch?v=eFKeNPJq50g) ##### ๐Ÿ”ถ SDIO -- [๐Ÿ”˜ SDIO Protocol](https://prodigytechno.com/sdio-protocol/) -- [๐Ÿ”˜ Interface SD CARD with SDIO in STM32](https://controllerstech.com/interface-sd-card-with-sdio-in-stm32/) -- [๐Ÿ”˜ SDIO Card Slave Driver - ESP32 - Technical Documents](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdio_slave.html) +- [๐Ÿ“ SDIO Protocol](https://prodigytechno.com/sdio-protocol/) +- [๐Ÿ“ Interface SD CARD with SDIO in STM32](https://controllerstech.com/interface-sd-card-with-sdio-in-stm32/) +- [๐Ÿ”— SDIO Card Slave Driver - ESP32 - Technical Documents](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdio_slave.html) ##### ๐Ÿ”ถ I3C -- [๐Ÿ”˜ What is I3Cยฎ?](https://www.youtube.com/watch?v=g3TBNHec5Ec) -- [๐Ÿ”˜ MIPI I3C & MIPI I3C Basic](https://www.mipi.org/specifications/i3c-sensor-specification) -- [๐Ÿ”˜ I3C Protocol: Understanding and Debug](https://prodigytechno.com/mipi-i3c-protocol-debug/) -- [๐Ÿ”˜ MIPI I3C Basic - The next generation sensor interface enabling low-power IoT applications](https://www.youtube.com/watch?v=xWKxZp_9RFQ) +- [๐ŸŽž๏ธ What is I3Cยฎ?](https://www.youtube.com/watch?v=g3TBNHec5Ec) +- [๐Ÿ”— MIPI I3C & MIPI I3C Basic](https://www.mipi.org/specifications/i3c-sensor-specification) +- [๐Ÿ“ I3C Protocol: Understanding and Debug](https://prodigytechno.com/mipi-i3c-protocol-debug/) +- [๐ŸŽž๏ธ MIPI I3C Basic - The next generation sensor interface enabling low-power IoT applications](https://www.youtube.com/watch?v=xWKxZp_9RFQ) ##### ๐Ÿ”ถ 1-Wire -- [๐Ÿ”˜ 1-Wireยฎ Technology Overview](https://www.youtube.com/watch?v=CjH-OztKe00) +- [๐ŸŽž๏ธ 1-Wireยฎ Technology Overview](https://www.youtube.com/watch?v=CjH-OztKe00) #### ๐Ÿ”ต Digital Audio Protocols ##### ๐Ÿ”ถ I2S -- [๐Ÿ”˜ Introduction to the I2S Interface](https://www.allaboutcircuits.com/technical-articles/introduction-to-the-i2s-interface/) -- [๐Ÿ”˜ Building a Digital Music Player with I2S?! What is I2S! EB#45](https://www.youtube.com/watch?v=qNLvoSQCx60) -- [๐Ÿ”˜ UM11732 - I2S bus specification](https://www.nxp.com/docs/en/user-manual/UM11732.pdf) +- [๐Ÿ“ Introduction to the I2S Interface](https://www.allaboutcircuits.com/technical-articles/introduction-to-the-i2s-interface/) +- [๐ŸŽž๏ธ Building a Digital Music Player with I2S?! What is I2S! EB#45](https://www.youtube.com/watch?v=qNLvoSQCx60) +- [๐Ÿ”— UM11732 - I2S bus specification](https://www.nxp.com/docs/en/user-manual/UM11732.pdf) ##### ๐Ÿ”ถ PCM -- [๐Ÿ”˜ HUAWEI LGA Module - PCM Audio Design Guide](https://www.paoli.cz/out/media/HUAWEI%20LGA%20Module%20PCM%20Audio%20Design%20Guide-V100R001_04(1).pdf) -- [๐Ÿ”˜ PCM Terminology and Concepts](https://larsimmisch.github.io/pyalsaaudio/terminology.html) +- [๐Ÿ”— HUAWEI LGA Module - PCM Audio Design Guide](https://www.paoli.cz/out/media/HUAWEI%20LGA%20Module%20PCM%20Audio%20Design%20Guide-V100R001_04(1).pdf) +- [๐Ÿ“ PCM Terminology and Concepts](https://larsimmisch.github.io/pyalsaaudio/terminology.html) #### ๐Ÿ”ต Image & Video Protocols ##### ๐Ÿ”ถ MIPI CSI-2 -- [๐Ÿ”˜ MIPI Camera Serial Interface 2](https://www.mipi.org/specifications/csi-2) -- [๐Ÿ”˜ Tutorial: MIPI CSI-2](https://www.youtube.com/watch?v=8REu_h7bzHM) +- [๐Ÿ”— MIPI Camera Serial Interface 2](https://www.mipi.org/specifications/csi-2) +- [๐ŸŽž๏ธ Tutorial: MIPI CSI-2](https://www.youtube.com/watch?v=8REu_h7bzHM) ##### ๐Ÿ”ถ MIPI DSI -- [MIPI Display Serial Interface](https://www.mipi.org/specifications/dsi) +- [๐Ÿ”— MIPI Display Serial Interface](https://www.mipi.org/specifications/dsi) ##### ๐Ÿ”ถ HDMI -- [๐Ÿ”˜ TI Precision Labs - Video Interface: What are HDMI & Dual-Mode DisplayPort?](https://www.youtube.com/watch?v=jCO7Up1rzJc) -- [๐Ÿ”˜ HDMI 2.1 & TMDS Crash Course - ENMU EET 457 - Presentation](https://www.youtube.com/watch?v=5acgSK0kWTE) +- [๐ŸŽž๏ธ TI Precision Labs - Video Interface: What are HDMI & Dual-Mode DisplayPort?](https://www.youtube.com/watch?v=jCO7Up1rzJc) +- [๐ŸŽž๏ธ HDMI 2.1 & TMDS Crash Course - ENMU EET 457 - Presentation](https://www.youtube.com/watch?v=5acgSK0kWTE) #### ๐Ÿ”ต Wireless Protocols ##### ๐Ÿ”ถ Bluetooth / BLE -- [๐Ÿ‘ถ ๐Ÿ’Ž Microchip University - First Steps into Bluetooth Low Energy (BLE)](https://mu.microchip.com/first-steps-into-bluetooth-low-energy-ble) -- [๐Ÿ”˜ Bluetooth Basics](https://learn.sparkfun.com/tutorials/bluetooth-basics/all) -- [๐Ÿ”˜ Bluetooth Low Energy: A Primer](https://interrupt.memfault.com/blog/bluetooth-low-energy-a-primer) -- [๐Ÿ”˜ A Practical Guide to BLE Throughput](https://interrupt.memfault.com/blog/ble-throughput-primer) -- [๐Ÿ”˜ SparkFun According to Pete #49 - How Bluetooth Works](https://www.youtube.com/watch?v=zJqGLWQGyvk) -- [๐Ÿ”˜ Bluetooth Low Energy Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/) -- [๐Ÿ”˜ Bluetooth Overview - ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/bluetooth.html) +- [๐ŸŽž๏ธ๐Ÿ‘ถ๐Ÿ’Ž Microchip University - First Steps into Bluetooth Low Energy (BLE)](https://mu.microchip.com/first-steps-into-bluetooth-low-energy-ble) +- [๐Ÿ“ Bluetooth Basics](https://learn.sparkfun.com/tutorials/bluetooth-basics/all) +- [๐Ÿ“ Bluetooth Low Energy: A Primer](https://interrupt.memfault.com/blog/bluetooth-low-energy-a-primer) +- [๐Ÿ“ A Practical Guide to BLE Throughput](https://interrupt.memfault.com/blog/ble-throughput-primer) +- [๐ŸŽž๏ธ SparkFun According to Pete #49 - How Bluetooth Works](https://www.youtube.com/watch?v=zJqGLWQGyvk) +- [๐Ÿ”— Bluetooth Low Energy Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/) +- [๐Ÿ”— Bluetooth Overview - ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/bluetooth.html) ##### ๐Ÿ”ถ Wi-Fi -- [๐Ÿ”˜ 802.11 How WiFi Works - Wireless Networks | Computer Networks Ep. 7.3 | Kurose & Ross](https://www.youtube.com/watch?v=vvhEnr52UOU) -- [๐Ÿ”˜ 802.11 Frame Analysis](https://www.youtube.com/watch?v=ITAJb3v5VKQ) -- [๐Ÿ”˜ Wi-Fi Driver - ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html) -- [๐Ÿ”˜ ESP32 Set an Access Point (AP) using ESP-IDF](https://esp32tutorials.com/esp32-access-point-ap-esp-idf/) -- [๐Ÿ”˜ ESP32 ESP-IDF Connect with WiFi โ€“ Station Mode Example](https://esp32tutorials.com/esp32-esp-idf-connect-wifi-station-mode-example/) +- [๐ŸŽž๏ธ 802.11 How WiFi Works - Wireless Networks | Computer Networks Ep. 7.3 | Kurose & Ross](https://www.youtube.com/watch?v=vvhEnr52UOU) +- [๐ŸŽž๏ธ 802.11 Frame Analysis](https://www.youtube.com/watch?v=ITAJb3v5VKQ) +- [๐Ÿ”— Wi-Fi Driver - ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html) +- [๐Ÿ“ ESP32 Set an Access Point (AP) using ESP-IDF](https://esp32tutorials.com/esp32-access-point-ap-esp-idf/) +- [๐Ÿ“ ESP32 ESP-IDF Connect with WiFi โ€“ Station Mode Example](https://esp32tutorials.com/esp32-esp-idf-connect-wifi-station-mode-example/) ##### ๐Ÿ”ถ LoRa / LoRaWAN -- [๐Ÿ”˜ The Arduino Guide to LoRaยฎ and LoRaWANยฎ](https://docs.arduino.cc/learn/communication/lorawan-101) -- [๐Ÿ’Ž The Things Fundamentals on LoRaWAN!](https://www.thethingsnetwork.org/docs/lorawan/) -- [๐Ÿ”˜ What are LoRaยฎ and LoRaWANยฎ?](https://lora-developers.semtech.com/documentation/tech-papers-and-guides/lora-and-lorawan/) -- [๐Ÿ”˜ #112 LoRa / LoRaWAN De-Mystified / Tutorial](https://www.youtube.com/watch?v=hMOwbNUpDQA) -- [๐Ÿ”˜ ESP32 with LoRa using Arduino IDE โ€“ Getting Started](https://randomnerdtutorials.com/esp32-lora-rfm95-transceiver-arduino-ide/) +- [๐Ÿ“ The Arduino Guide to LoRaยฎ and LoRaWANยฎ](https://docs.arduino.cc/learn/communication/lorawan-101) +- [๐Ÿ”—๐Ÿ’Ž The Things Fundamentals on LoRaWAN!](https://www.thethingsnetwork.org/docs/lorawan/) +- [๐Ÿ“ What are LoRaยฎ and LoRaWANยฎ?](https://lora-developers.semtech.com/documentation/tech-papers-and-guides/lora-and-lorawan/) +- [๐ŸŽž๏ธ #112 LoRa / LoRaWAN De-Mystified / Tutorial](https://www.youtube.com/watch?v=hMOwbNUpDQA) +- [๐Ÿ”— ESP32 with LoRa using Arduino IDE โ€“ Getting Started](https://randomnerdtutorials.com/esp32-lora-rfm95-transceiver-arduino-ide/) ##### ๐Ÿ”ถ Zigbee -- [๐Ÿ”˜ What is ZIGBEE And How It Works?](https://www.youtube.com/watch?v=THtVeaxnd9E) -- [๐Ÿ”˜ How to take advantage of Zigbee and Bluetooth LE 5.2 on STM32WB wireless MCUs - Webinar Replay](https://www.youtube.com/watch?v=2sYEPykOaLQ) +- [๐ŸŽž๏ธ What is ZIGBEE And How It Works?](https://www.youtube.com/watch?v=THtVeaxnd9E) +- [๐ŸŽž๏ธ How to take advantage of Zigbee and Bluetooth LE 5.2 on STM32WB wireless MCUs - Webinar Replay](https://www.youtube.com/watch?v=2sYEPykOaLQ) ##### ๐Ÿ”ถ Thread -- [๐Ÿ”˜ OpenThread - An open-source implementation of Threadยฎ](https://openthread.io/) -- [๐Ÿ”˜ What is Thread? Low-power IoT Networking for Smart Home Devices | Digi-Key Electronics](https://youtu.be/5CauESYB9-A) -- [๐Ÿ”˜ OpenThread - ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/openthread.html) +- [๐Ÿ”— OpenThread - An open-source implementation of Threadยฎ](https://openthread.io/) +- [๐ŸŽž๏ธ What is Thread? Low-power IoT Networking for Smart Home Devices | Digi-Key Electronics](https://youtu.be/5CauESYB9-A) +- [๐Ÿ”— OpenThread - ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/openthread.html) ##### ๐Ÿ”ถ Matter -- [๐Ÿ”˜ What is Matter? Unifying IoT Devices for the Smart Home | Digi-Key Electronics](https://youtu.be/vJIEfih9bl0) +- [๐ŸŽž๏ธ What is Matter? Unifying IoT Devices for the Smart Home | Digi-Key Electronics](https://youtu.be/vJIEfih9bl0) #### ๐Ÿ”ต Industrial Protocols ##### ๐Ÿ”ถ Modbus -- [๐Ÿ”˜ What is Modbus and How does it Work?](https://www.youtube.com/watch?v=txi2p5_OjKU) -- [๐Ÿ”˜ How does Modbus Communication Protocol Work?](https://www.youtube.com/watch?v=JBGaInI-TG4) -- [๐Ÿ”˜ MODBUS STM32 (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8ggRvaEsMjSEDazoBAnY4MUv) +- [๐ŸŽž๏ธ What is Modbus and How does it Work?](https://www.youtube.com/watch?v=txi2p5_OjKU) +- [๐ŸŽž๏ธ How does Modbus Communication Protocol Work?](https://www.youtube.com/watch?v=JBGaInI-TG4) +- [๐ŸŽž๏ธ MODBUS STM32 (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfIJKC1ud8ggRvaEsMjSEDazoBAnY4MUv) ##### ๐Ÿ”ถ RS485 -- [๐Ÿ”˜ What is RS485 and How it's used in Industrial Control Systems?](https://www.youtube.com/watch?v=3wgKcUDlHuM) -- [๐Ÿ”˜ What is RS-485?](https://www.youtube.com/watch?v=bt9Px51eP6s) +- [๐ŸŽž๏ธ What is RS485 and How it's used in Industrial Control Systems?](https://www.youtube.com/watch?v=3wgKcUDlHuM) +- [๐ŸŽž๏ธ What is RS-485?](https://www.youtube.com/watch?v=bt9Px51eP6s) ##### ๐Ÿ”ถ EtherCAT -- [๐Ÿ”˜ Microchip University - An Introduction to EtherCATยฎ, EtherCAT P and the Microchip LAN925x family of Slave Controllers](https://mu.microchip.com/an-introduction-to-ethercat-ethercat-p-and-the-microchip-lan925x-family-of-slave-controllers) +- [๐ŸŽž๏ธ Microchip University - An Introduction to EtherCATยฎ, EtherCAT P and the Microchip LAN925x family of Slave Controllers](https://mu.microchip.com/an-introduction-to-ethercat-ethercat-p-and-the-microchip-lan925x-family-of-slave-controllers) ##### ๐Ÿ”ถ CoAP & MQTT -- [๐Ÿ”˜ #144 Internet Protocols: CoAP vs MQTT, Network Sniffing, and preparation for IKEA Tradfri Hacking](https://www.youtube.com/watch?v=pfG8uEDZj5g) -- [๐Ÿ”˜ MQTT vs. CoAP | Comparison of IoT Protocols](https://www.youtube.com/watch?v=0CORpVSUQe0) -- [๐Ÿ”˜ Simple ESP32 IoT Sensor Node Tutorial: WiFi Enabled MQTT Sensor Data Node](https://www.youtube.com/watch?v=x5A5S0hoyJ0) -- [๐Ÿ”˜ Cellular IoT Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/) +- [๐ŸŽž๏ธ #144 Internet Protocols: CoAP vs MQTT, Network Sniffing, and preparation for IKEA Tradfri Hacking](https://www.youtube.com/watch?v=pfG8uEDZj5g) +- [๐ŸŽž๏ธ MQTT vs. CoAP | Comparison of IoT Protocols](https://www.youtube.com/watch?v=0CORpVSUQe0) +- [๐ŸŽž๏ธ Simple ESP32 IoT Sensor Node Tutorial: WiFi Enabled MQTT Sensor Data Node](https://www.youtube.com/watch?v=x5A5S0hoyJ0) +- [๐Ÿ”— Cellular IoT Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/) #### ๐Ÿ”ต High-Speed Protocols ##### ๐Ÿ”ถ Ethernet -- [๐Ÿ‘ถ Microchip University - Ethernet Fundamentals](https://mu.microchip.com/ethernet-fundamentals) -- [๐Ÿ”˜ How the Ethernet Protocol Works โ€“ A Complete Guide](https://www.freecodecamp.org/news/the-complete-guide-to-the-ethernet-protocol/) -- [๐Ÿ”˜ What is an Ethernet PHY?](https://www.youtube.com/watch?v=JH3cMYErmKI) -- [๐Ÿ”˜ The Data Link Layer, MAC Addressing, and the Ethernet Frame](https://youtu.be/_b4dXKB8Pt8) -- [๐Ÿ”˜ Microchip University - Serializer/Deserializer (SerDes) Basics for Your Next Microchip Ethernet PHY Design](https://mu.microchip.com/serializerdeserializer-serdes-basics-for-your-next-microchip-ethernet-phy-design) -- [๐Ÿ”˜ Microchip University - Ethernet Switch Fundamentals](https://mu.microchip.com/ethernet-switch-fundamentals) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - Ethernet Fundamentals](https://mu.microchip.com/ethernet-fundamentals) +- [๐Ÿ“ How the Ethernet Protocol Works โ€“ A Complete Guide](https://www.freecodecamp.org/news/the-complete-guide-to-the-ethernet-protocol/) +- [๐ŸŽž๏ธ What is an Ethernet PHY?](https://www.youtube.com/watch?v=JH3cMYErmKI) +- [๐ŸŽž๏ธ The Data Link Layer, MAC Addressing, and the Ethernet Frame](https://youtu.be/_b4dXKB8Pt8) +- [๐ŸŽž๏ธ Microchip University - Serializer/Deserializer (SerDes) Basics for Your Next Microchip Ethernet PHY Design](https://mu.microchip.com/serializerdeserializer-serdes-basics-for-your-next-microchip-ethernet-phy-design) +- [๐ŸŽž๏ธ Microchip University - Ethernet Switch Fundamentals](https://mu.microchip.com/ethernet-switch-fundamentals) ##### ๐Ÿ”ถ USB -- [๐Ÿ‘ถ Microchip University - Introduction to USB 2.0](https://mu.microchip.com/introduction-to-usb-20) -- [๐Ÿ‘ถ Microchip University - USB 3 Fundamentals](https://mu.microchip.com/usb-3-fundamentals) -- [๐Ÿ”˜ Training - USB 101 - Introduction to USB](https://www.youtube.com/watch?v=5S6ZPmtPzRA) -- [๐Ÿ”˜ USB 101: An Introduction to Universal Serial Bus 2.0](https://www.infineon.com/dgdl/Infineon-AN57294_USB_101_An_Introduction_to_Universal_Serial_Bus_2.0-ApplicationNotes-v09_00-EN.pdf?fileId=8ac78c8c7cdc391c017d072d8e8e5256) -- [๐Ÿ”˜ How does a USB keyboard work?](https://youtu.be/wdgULBpRoXk) -- [๐Ÿ”˜ How does USB device discovery work?](https://www.youtube.com/watch?v=N0O5Uwc3C0o) -- [๐Ÿ”˜ MOOC - STM32 USB training (YouTube Playlist)](https://www.youtube.com/playlist?list=PLnMKNibPkDnFFRBVD206EfnnHhQZI4Hxa) -- [๐Ÿ”˜ Microchip University - USB2 Hub Fundamentals](https://mu.microchip.com/usb2-hub-fundamentals) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - Introduction to USB 2.0](https://mu.microchip.com/introduction-to-usb-20) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - USB 3 Fundamentals](https://mu.microchip.com/usb-3-fundamentals) +- [๐ŸŽž๏ธ Training - USB 101 - Introduction to USB](https://www.youtube.com/watch?v=5S6ZPmtPzRA) +- [๐Ÿ”— USB 101: An Introduction to Universal Serial Bus 2.0](https://www.infineon.com/dgdl/Infineon-AN57294_USB_101_An_Introduction_to_Universal_Serial_Bus_2.0-ApplicationNotes-v09_00-EN.pdf?fileId=8ac78c8c7cdc391c017d072d8e8e5256) +- [๐ŸŽž๏ธ How does a USB keyboard work?](https://youtu.be/wdgULBpRoXk) +- [๐ŸŽž๏ธ How does USB device discovery work?](https://www.youtube.com/watch?v=N0O5Uwc3C0o) +- [๐ŸŽž๏ธ MOOC - STM32 USB training (YouTube Playlist)](https://www.youtube.com/playlist?list=PLnMKNibPkDnFFRBVD206EfnnHhQZI4Hxa) +- [๐ŸŽž๏ธ Microchip University - USB2 Hub Fundamentals](https://mu.microchip.com/usb2-hub-fundamentals) ##### ๐Ÿ”ถ PCIe -- [๐Ÿ”˜ What is PCIe?](https://www.youtube.com/watch?v=L9qXjmJdQXY) -- [๐Ÿ”˜ PCIe QuickLearn (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9B4edd-p2ajuP4dBHcnhtHKoZKkoR1R4) -- [๐Ÿ”˜ PCIe Protocol (YouTube Playlist)](https://www.youtube.com/playlist?list=PLZe4P0P_9Cosd0i2ha_QRdWlR1iZ0yVG4) +- [๐ŸŽž๏ธ What is PCIe?](https://www.youtube.com/watch?v=L9qXjmJdQXY) +- [๐ŸŽž๏ธ PCIe QuickLearn (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9B4edd-p2ajuP4dBHcnhtHKoZKkoR1R4) +- [๐ŸŽž๏ธ PCIe Protocol (YouTube Playlist)](https://www.youtube.com/playlist?list=PLZe4P0P_9Cosd0i2ha_QRdWlR1iZ0yVG4) #### ๐Ÿ”ต Automotive Protocols ##### ๐Ÿ”ถ CAN -- [๐Ÿ‘ถ Microchip University - CAN and CAN FD Protocol and Physical Layer Basics](https://mu.microchip.com/understanding-the-can-fd-protocol) -- [๐Ÿ‘ถ CAN Bus: Serial Communication - How It Works?](https://www.youtube.com/watch?v=JZSCzRT9TTo&t=21s) -- [๐Ÿ‘ถ CAN Bus: A Beginners Guide Part 1](https://www.youtube.com/watch?v=YBrU_eZM110) -- [๐Ÿ‘ถ CAN Bus: A Beginners Guide Part 2](https://www.youtube.com/watch?v=z5CVljiLhvc) -- [๐Ÿ’Ž Microchip University - Designing and Implementing a CAN FD Network](https://mu.microchip.com/designing-and-implementing-a-can-fd-network) -- [๐Ÿ”˜ Improving my electric longboard with a CAN Bus! What can the CAN Bus do? EB#44](https://www.youtube.com/watch?v=PL0TPdrhMuI) -- [๐Ÿ”˜ CAN Bus, OBD2 & J1939 Explained (YouTube Playlist)](https://www.youtube.com/playlist?list=PLpV68vjf4Xo4vZ_SjJ6tTlomYm-k18vDZ) -- [๐Ÿ”˜ J1939 Explained - A Simple Intro [v2.0 | 2021]](https://www.youtube.com/watch?v=vlqxu9ojbHg) -- [๐Ÿ”˜ Unified Diagnostic Services (UDS) Explained - A Simple Intro [2022]](https://www.youtube.com/watch?v=CV_B8tJgI5E) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - CAN and CAN FD Protocol and Physical Layer Basics](https://mu.microchip.com/understanding-the-can-fd-protocol) +- [๐ŸŽž๏ธ๐Ÿ‘ถ CAN Bus: Serial Communication - How It Works?](https://www.youtube.com/watch?v=JZSCzRT9TTo&t=21s) +- [๐ŸŽž๏ธ๐Ÿ‘ถ CAN Bus: A Beginners Guide Part 1](https://www.youtube.com/watch?v=YBrU_eZM110) +- [๐ŸŽž๏ธ๐Ÿ‘ถ CAN Bus: A Beginners Guide Part 2](https://www.youtube.com/watch?v=z5CVljiLhvc) +- [๐ŸŽž๏ธ๐Ÿ’Ž Microchip University - Designing and Implementing a CAN FD Network](https://mu.microchip.com/designing-and-implementing-a-can-fd-network) +- [๐ŸŽž๏ธ Improving my electric longboard with a CAN Bus! What can the CAN Bus do? EB#44](https://www.youtube.com/watch?v=PL0TPdrhMuI) +- [๐ŸŽž๏ธ CAN Bus, OBD2 & J1939 Explained (YouTube Playlist)](https://www.youtube.com/playlist?list=PLpV68vjf4Xo4vZ_SjJ6tTlomYm-k18vDZ) +- [๐ŸŽž๏ธ J1939 Explained - A Simple Intro [v2.0 | 2021]](https://www.youtube.com/watch?v=vlqxu9ojbHg) +- [๐ŸŽž๏ธ Unified Diagnostic Services (UDS) Explained - A Simple Intro [2022]](https://www.youtube.com/watch?v=CV_B8tJgI5E) #### ๐Ÿ”ต Network Protocols / Socket Programming -- [๐Ÿ”˜ Networking Fundamentals - Practical Networking (YouTube Playlist)](https://www.youtube.com/playlist?list=PLIFyRwBY_4bRLmKfP1KnZA6rZbRHtxmXi) -- [๐Ÿ”˜ TCP vs UDP - Explaining Facts and Debunking Myths - TCP Masterclass](https://www.youtube.com/watch?v=jE_FcgpQ7Co) -- [๐Ÿ”˜ TCP - 12 simple ideas to explain the Transmission Control Protocol](https://www.youtube.com/watch?v=JFch3ctY6nE) -- [๐Ÿ”˜ UDP doesn't suck! It's the BEST L4 protocol for THESE types of applications...](https://www.youtube.com/watch?v=LaDRWycC7Iw) -- [๐Ÿ”˜ Networking tutorial - Ben Eater (YouTube Playlist)](https://www.youtube.com/playlist?list=PLowKtXNTBypH19whXTVoG3oKSuOcw_XeW) -- [๐Ÿ’Ž Hands-On Network Programming with C - Lewis Van Winkle](https://www.amazon.com/exec/obidos/ASIN/1789349869/aoeu-20) -- [๐Ÿ’Ž Network Algorithmics - George Varghese, Jun Xu](https://www.oreilly.com/library/view/network-algorithmics-2nd/9780128099865/) -- [๐Ÿ”˜ tcpdump & libpcap libraries](https://www.tcpdump.org/) -- [๐Ÿ”˜ lwIP - A Lightweight TCP/IP stack](https://savannah.nongnu.org/projects/lwip/) -- [๐Ÿ”˜ lwIP (ESP-IDF)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/lwip.html) -- [๐Ÿ”˜ Developing applications on STM32Cube with LwIP TCP/IP stack](https://www.st.com/resource/en/user_manual/um1713-developing-applications-on-stm32cube-with-lwip-tcpip-stack-stmicroelectronics.pdf) +- [๐ŸŽž๏ธ Networking Fundamentals - Practical Networking (YouTube Playlist)](https://www.youtube.com/playlist?list=PLIFyRwBY_4bRLmKfP1KnZA6rZbRHtxmXi) +- [๐ŸŽž๏ธ TCP vs UDP - Explaining Facts and Debunking Myths - TCP Masterclass](https://www.youtube.com/watch?v=jE_FcgpQ7Co) +- [๐ŸŽž๏ธ TCP - 12 simple ideas to explain the Transmission Control Protocol](https://www.youtube.com/watch?v=JFch3ctY6nE) +- [๐ŸŽž๏ธ UDP doesn't suck! It's the BEST L4 protocol for THESE types of applications...](https://www.youtube.com/watch?v=LaDRWycC7Iw) +- [๐ŸŽž๏ธ Networking tutorial - Ben Eater (YouTube Playlist)](https://www.youtube.com/playlist?list=PLowKtXNTBypH19whXTVoG3oKSuOcw_XeW) +- [๐Ÿ“˜๐Ÿ’Ž Hands-On Network Programming with C - Lewis Van Winkle](https://www.amazon.com/exec/obidos/ASIN/1789349869/aoeu-20) +- [๐Ÿ“˜๐Ÿ’Ž Network Algorithmics - George Varghese, Jun Xu](https://www.oreilly.com/library/view/network-algorithmics-2nd/9780128099865/) +- [๐Ÿ”— tcpdump & libpcap libraries](https://www.tcpdump.org/) +- [๐Ÿ”— lwIP - A Lightweight TCP/IP stack](https://savannah.nongnu.org/projects/lwip/) +- [๐Ÿ”— lwIP (ESP-IDF)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/lwip.html) +- [๐Ÿ”— Developing applications on STM32Cube with LwIP TCP/IP stack](https://www.st.com/resource/en/user_manual/um1713-developing-applications-on-stm32cube-with-lwip-tcpip-stack-stmicroelectronics.pdf) #### ๐Ÿ”ต Cellular Communication ##### ๐Ÿ”ถ GSM / LTE -- [๐Ÿ”˜ STM32 : Internet Of Things With 4G LTE Modem (YouTube Playlist)](https://www.youtube.com/playlist?list=PL2_RO8p04imYY5JOrCDT7V0hnzkgyExRe) +- [๐ŸŽž๏ธ STM32 : Internet Of Things With 4G LTE Modem (YouTube Playlist)](https://www.youtube.com/playlist?list=PL2_RO8p04imYY5JOrCDT7V0hnzkgyExRe) ##### ๐Ÿ”ถ LTE-M & NB-IoT -- [๐Ÿ”˜ Cellular IoT Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/) +- [๐Ÿ”— Cellular IoT Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/) _________________ @@ -740,24 +745,24 @@ _________________ Embedded system development often involves simulating or emulating hardware environments to test and debug software before deploying it on actual hardware. Simulation tools create virtual models of hardware systems, while emulation tools replicate the actual hardware behavior using real hardware components. These tools offer several advantages, including reducing development time, minimizing hardware costs, and enhancing software reliability. -- [๐Ÿ‘ถ Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/) -- [๐Ÿ‘ถ SimulIDE Circuit Simulator](https://simulide.com/) +- [๐Ÿ”—๐Ÿ‘ถ Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/) +- [๐Ÿ”—๐Ÿ‘ถ SimulIDE Circuit Simulator](https://simulide.com/) #### ๐Ÿ”ต [QEMU](https://www.qemu.org/) -- [๐Ÿ”˜ QEMUโ€™s documentation](https://www.qemu.org/docs/master/index.html) -- [๐Ÿ”˜ Running AVR code in QEMU - A quick-start guide to accelerate AVR firmware development](https://yeah.nah.nz/embedded/qemu-avr/) -- [๐Ÿ”˜ QEMU Simulation - Blinky - STM32F767ZI Full Stack](https://longer-vision-robot.gitbook.io/stm32f767zi-full-stack/chapter-2.-programming-for-stm32/2.4-qemu-simulation-blinky) -- [๐Ÿ”˜ Emulating a Raspberry Pi in QEMU](https://interrupt.memfault.com/blog/emulating-raspberry-pi-in-qemu) +- [๐Ÿ”— QEMUโ€™s documentation](https://www.qemu.org/docs/master/index.html) +- [๐Ÿ“ Running AVR code in QEMU - A quick-start guide to accelerate AVR firmware development](https://yeah.nah.nz/embedded/qemu-avr/) +- [๐Ÿ“ QEMU Simulation - Blinky - STM32F767ZI Full Stack](https://longer-vision-robot.gitbook.io/stm32f767zi-full-stack/chapter-2.-programming-for-stm32/2.4-qemu-simulation-blinky) +- [๐Ÿ“ Emulating a Raspberry Pi in QEMU](https://interrupt.memfault.com/blog/emulating-raspberry-pi-in-qemu) #### ๐Ÿ”ต [Renode](https://renode.io/) -- [๐Ÿ”˜ Renode - GitHub Repo](https://github.com/renode/renode) -- [๐Ÿ”˜ Renode - Documentation](https://renode.readthedocs.io/en/latest/) -- [๐Ÿ”˜ Renode - Official Tutorials](https://renode.io/tutorials/) -- [๐Ÿ”˜ Cortex-M MCU Emulation with Renode](https://interrupt.memfault.com/blog/intro-to-renode) -- [๐Ÿ”˜ A simple guide to get started on renode](https://github.com/tarciszera/renode_guide) -- [๐Ÿ”˜ Using CI-based workflow with Renode in bringing TensorFlow Lite to Zephyr](https://www.youtube.com/watch?v=jF94cXPoZZg) +- [๐Ÿ”— Renode - GitHub Repo](https://github.com/renode/renode) +- [๐Ÿ”— Renode - Documentation](https://renode.readthedocs.io/en/latest/) +- [๐Ÿ”— Renode - Official Tutorials](https://renode.io/tutorials/) +- [๐Ÿ“ Cortex-M MCU Emulation with Renode](https://interrupt.memfault.com/blog/intro-to-renode) +- [๐Ÿ“ A simple guide to get started on renode](https://github.com/tarciszera/renode_guide) +- [๐ŸŽž๏ธ Using CI-based workflow with Renode in bringing TensorFlow Lite to Zephyr](https://www.youtube.com/watch?v=jF94cXPoZZg) _________________ @@ -765,50 +770,50 @@ _________________ Embedded systems employ a combination of volatile (SRAM, DRAM, PSRAM) and non-volatile (flash, EEPROM, FRAM) memory to store and access data, based on factors like performance, cost, power consumption, and durability. -- [๐Ÿ”˜ Memory Options for Embedded Systems: How to Select the Right Memory Configuration](https://www.qt.io/embedded-development-talk/memory-options-for-embedded-systems-how-to-select-the-right-memory-configuration) +- [๐Ÿ“ Memory Options for Embedded Systems: How to Select the Right Memory Configuration](https://www.qt.io/embedded-development-talk/memory-options-for-embedded-systems-how-to-select-the-right-memory-configuration) #### ๐Ÿ”ต Flash Memory -- [๐Ÿ”˜ NAND and eMMC: All You Need to Know About Flash Memory](https://www.makeuseof.com/tag/nand-emmc-need-know-flash-memory/) +- [๐Ÿ“ NAND and eMMC: All You Need to Know About Flash Memory](https://www.makeuseof.com/tag/nand-emmc-need-know-flash-memory/) ##### ๐Ÿ”ถ NOR / NAND -- [๐Ÿ”˜ QSPI in STM32 || Write and Read || N25Q](https://www.youtube.com/watch?v=xIfh_uYy-OU) -- [๐Ÿ”˜ QSPI in STM32 || Boot from EXT Memory || XIP || N25Q](https://www.youtube.com/watch?v=gAyuF20ok8c) -- [๐Ÿ”˜ Flash Memory in Embedded Linux Systems](https://www.youtube.com/watch?v=hdwMvwJIV-Y) +- [๐ŸŽž๏ธ QSPI in STM32 || Write and Read || N25Q](https://www.youtube.com/watch?v=xIfh_uYy-OU) +- [๐ŸŽž๏ธ QSPI in STM32 || Boot from EXT Memory || XIP || N25Q](https://www.youtube.com/watch?v=gAyuF20ok8c) +- [๐ŸŽž๏ธ Flash Memory in Embedded Linux Systems](https://www.youtube.com/watch?v=hdwMvwJIV-Y) ##### ๐Ÿ”ถ eMMC -- [๐Ÿ”˜ What is a eMMC? Intro, Comparing to Other Storage, and Upgrading. SSD, M.2](https://www.youtube.com/watch?v=vGatKmqYxEA) +- [๐ŸŽž๏ธ What is a eMMC? Intro, Comparing to Other Storage, and Upgrading. SSD, M.2](https://www.youtube.com/watch?v=vGatKmqYxEA) ##### ๐Ÿ”ถ SD Card -- [๐Ÿ”˜ Interfacing with an SD Card](https://www.youtube.com/watch?v=g40tUdjZ-Sk) +- [๐ŸŽž๏ธ Interfacing with an SD Card](https://www.youtube.com/watch?v=g40tUdjZ-Sk) #### ๐Ÿ”ต EEPROM -- [๐Ÿ”˜ Using EEPROM with Arduino - Internal & External](https://www.youtube.com/watch?v=ShqvATqXA7g) +- [๐ŸŽž๏ธ Using EEPROM with Arduino - Internal & External](https://www.youtube.com/watch?v=ShqvATqXA7g) #### ๐Ÿ”ต SRAM / DRAM -- [๐Ÿ”˜ SRAM vs DRAM: Difference Between SRAM & DRAM Explained](https://www.enterprisestorageforum.com/hardware/sram-vs-dram/) -- [๐Ÿ”˜ What is SRAM?](https://www.youtube.com/watch?v=kU2SsUUsftA) -- [๐Ÿ”˜ SDRAM Hardware & Firmware Tutorial (STM32) - Phil's Lab #80](https://www.youtube.com/watch?v=h28D4AaPSjg) -- [๐Ÿ”˜ SDRAM in STM32 || MT48LC4](https://www.youtube.com/watch?v=QnDenqvzwyE) +- [๐Ÿ“ SRAM vs DRAM: Difference Between SRAM & DRAM Explained](https://www.enterprisestorageforum.com/hardware/sram-vs-dram/) +- [๐ŸŽž๏ธ What is SRAM?](https://www.youtube.com/watch?v=kU2SsUUsftA) +- [๐ŸŽž๏ธ SDRAM Hardware & Firmware Tutorial (STM32) - Phil's Lab #80](https://www.youtube.com/watch?v=h28D4AaPSjg) +- [๐ŸŽž๏ธ SDRAM in STM32 || MT48LC4](https://www.youtube.com/watch?v=QnDenqvzwyE) #### ๐Ÿ”ต File Systems A file system is a way of organizing data on a storage device, such as a hard drive, flash drive, or solid-state drive. It provides a way to store, access, and manage files, which are collections of data that can be accessed individually. File systems in embedded systems are typically lightweight and optimized for efficiency, considering the limited resources and specific requirements of embedded devices. They often employ simpler file structures and data structures compared to desktop or server file systems. -- [๐Ÿ”˜ Flash filesystems](https://hugh712.gitbooks.io/embeddedsystem/content/flash_filesystems.html) -- [๐Ÿ”˜ Block filesystems](https://hugh712.gitbooks.io/embeddedsystem/content/block_filesystems.html) -- [๐Ÿ”˜ Understanding the UBI File System in Embedded Devices](https://serhack.me/articles/understanding-ubi-file-system-embedded-devices-reolink/) -- [๐Ÿ”˜ UBI File System](https://docs.kernel.org/filesystems/ubifs.html) -- [๐Ÿ”˜ JFFS : The Journalling Flash File System](https://sourceware.org/jffs2/jffs2-html/) -- [๐Ÿ”˜ Preventing Filesystem Corruption In Embedded Linux](https://www.embeddedts.com/assets/preventing-filesystem-corruption-in-embedded-linux) -- [๐Ÿ”˜ LittleFS - A high-integrity embedded file system](https://os.mbed.com/blog/entry/littlefs-high-integrity-embedded-fs/) -- [๐Ÿ”˜ SPIFS - Wear-leveled SPI flash file system for embedded devices](https://github.com/pellepl/spiffs) -- [๐Ÿ”˜ EEPROM File System (EEFS)](opensource.gsfc.nasa.gov/projects/eefs/index.php) +- [๐Ÿ“ Flash filesystems](https://hugh712.gitbooks.io/embeddedsystem/content/flash_filesystems.html) +- [๐Ÿ“ Block filesystems](https://hugh712.gitbooks.io/embeddedsystem/content/block_filesystems.html) +- [๐Ÿ“ Understanding the UBI File System in Embedded Devices](https://serhack.me/articles/understanding-ubi-file-system-embedded-devices-reolink/) +- [๐Ÿ“ UBI File System](https://docs.kernel.org/filesystems/ubifs.html) +- [๐Ÿ“ JFFS : The Journalling Flash File System](https://sourceware.org/jffs2/jffs2-html/) +- [๐Ÿ“ Preventing Filesystem Corruption In Embedded Linux](https://www.embeddedts.com/assets/preventing-filesystem-corruption-in-embedded-linux) +- [๐Ÿ”— LittleFS - A high-integrity embedded file system](https://os.mbed.com/blog/entry/littlefs-high-integrity-embedded-fs/) +- [๐Ÿ”— SPIFS - Wear-leveled SPI flash file system for embedded devices](https://github.com/pellepl/spiffs) +- [๐Ÿ”— EEPROM File System (EEFS)](opensource.gsfc.nasa.gov/projects/eefs/index.php) _________________ @@ -816,28 +821,28 @@ _________________ Sensors and actuators are the eyes and hands of embedded systems. They are responsible for gathering information about the environment and taking actions based on that information. Sensors convert physical phenomena, such as temperature, light, or sound, into electrical signals that can be processed by the embedded system. Actuators, on the other hand, convert electrical signals into physical actions, such as controlling the speed of a motor or opening and closing a valve. -- [๐Ÿ’Ž Coursera - Embedding Sensors and Motors Specialization](https://www.coursera.org/specializations/embedding-sensors-motors) +- [๐ŸŽž๏ธ๐Ÿ’Ž Coursera - Embedding Sensors and Motors Specialization](https://www.coursera.org/specializations/embedding-sensors-motors) #### ๐Ÿ”ต Sensors -- [๐Ÿ”˜ Calibrating Sensors](https://learn.adafruit.com/calibrating-sensors) -- [๐Ÿ”˜ DHT11 vs DHT22 vs LM35 vs DS18B20 vs BME280 vs BMP180](https://randomnerdtutorials.com/dht11-vs-dht22-vs-lm35-vs-ds18b20-vs-bme280-vs-bmp180/) -- [๐Ÿ”˜ Getting Started With STM32 and Nucleo Part 2: How to Use I2C to Read Temperature Sensor TMP102](https://www.youtube.com/watch?v=isOekyygpR8) -- [๐Ÿ”˜ GPS Module and STM32 || NEO 6M || Get coordinates, Date, Time, Speed, etc.](https://www.youtube.com/watch?v=tq_RoaPLahk) -- [๐Ÿ”˜ Interface MPU6050/GY-521 with STM32 || LCD 20x4 || CubeMx || HAL || SW4STM](https://www.youtube.com/watch?v=xxphp9wDnHA) -- [๐Ÿ”˜ Arduino with PIR Motion Sensor](https://randomnerdtutorials.com/arduino-with-pir-motion-sensor/) -- [๐Ÿ”˜ Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino](https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/) -- [๐Ÿ”˜ Electronic Basics #15: Temperature Measurement (Part 1) || NTC, PT100, Wheatstone Bridge](https://youtu.be/1U4fep_qAeo?si=Q2FF__EXONN-xN5M) +- [๐Ÿ“ Calibrating Sensors](https://learn.adafruit.com/calibrating-sensors) +- [๐Ÿ“ DHT11 vs DHT22 vs LM35 vs DS18B20 vs BME280 vs BMP180](https://randomnerdtutorials.com/dht11-vs-dht22-vs-lm35-vs-ds18b20-vs-bme280-vs-bmp180/) +- [๐ŸŽž๏ธ Getting Started With STM32 and Nucleo Part 2: How to Use I2C to Read Temperature Sensor TMP102](https://www.youtube.com/watch?v=isOekyygpR8) +- [๐ŸŽž๏ธ GPS Module and STM32 || NEO 6M || Get coordinates, Date, Time, Speed, etc.](https://www.youtube.com/watch?v=tq_RoaPLahk) +- [๐ŸŽž๏ธ Interface MPU6050/GY-521 with STM32 || LCD 20x4 || CubeMx || HAL || SW4STM](https://www.youtube.com/watch?v=xxphp9wDnHA) +- [๐Ÿ“ Arduino with PIR Motion Sensor](https://randomnerdtutorials.com/arduino-with-pir-motion-sensor/) +- [๐Ÿ“ Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino](https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/) +- [๐ŸŽž๏ธ Electronic Basics #15: Temperature Measurement (Part 1) || NTC, PT100, Wheatstone Bridge](https://youtu.be/1U4fep_qAeo?si=Q2FF__EXONN-xN5M) #### ๐Ÿ”ต Actuators -- [๐Ÿ”˜ Adafruit Motor Selection Guide](https://learn.adafruit.com/adafruit-motor-selection-guide) -- [๐Ÿ”˜ DC Motor Speed Controller PWM With Potentiometer Using STM32](https://www.youtube.com/watch?v=8QpegVuV_AQ) -- [๐Ÿ”˜ All About Stepper Motors](https://learn.adafruit.com/all-about-stepper-motors) -- [๐Ÿ”˜ Using Servos With CircuitPython and Arduino](https://learn.adafruit.com/using-servos-with-circuitpython) -- [๐Ÿ”˜ Electronic Basics #25: Servos and how to use them](https://youtu.be/J8atdmEqZsc?si=bH_xoIwnAsNU5_lD) -- [๐Ÿ”˜ Electronic Basics #24: Stepper Motors and how to use them](https://youtu.be/bkqoKWP4Oy4?si=kvhwykmFZ0UnLDJ7) -- [๐Ÿ”˜ Electronic Basics #18: DC & Brushless DC Motor + ESC](https://youtu.be/UteZJ_7C4Mg?si=uADPmCaucyWXd8Xe) +- [๐Ÿ“ Adafruit Motor Selection Guide](https://learn.adafruit.com/adafruit-motor-selection-guide) +- [๐ŸŽž๏ธ DC Motor Speed Controller PWM With Potentiometer Using STM32](https://www.youtube.com/watch?v=8QpegVuV_AQ) +- [๐Ÿ“ All About Stepper Motors](https://learn.adafruit.com/all-about-stepper-motors) +- [๐Ÿ“ Using Servos With CircuitPython and Arduino](https://learn.adafruit.com/using-servos-with-circuitpython) +- [๐ŸŽž๏ธ Electronic Basics #25: Servos and how to use them](https://youtu.be/J8atdmEqZsc?si=bH_xoIwnAsNU5_lD) +- [๐ŸŽž๏ธ Electronic Basics #24: Stepper Motors and how to use them](https://youtu.be/bkqoKWP4Oy4?si=kvhwykmFZ0UnLDJ7) +- [๐ŸŽž๏ธ Electronic Basics #18: DC & Brushless DC Motor + ESC](https://youtu.be/UteZJ_7C4Mg?si=uADPmCaucyWXd8Xe) _________________ @@ -847,42 +852,42 @@ Digital signal processing (DSP) is a branch of engineering that deals with the p #### ๐Ÿ”ต DSP Basics & Filter Design -- [๐Ÿ’Ž The Scientist and Engineer's Guide to Digital Signal Processing - Steven W. Smith](https://www.dspguide.com/pdfbook.htm) -- [๐Ÿ”˜ FIR Filter Design and Software Implementation - Phil's Lab #17](https://www.youtube.com/watch?v=uNNNj9AZisM) -- [๐Ÿ”˜ IIR Filters - Theory and Implementation (STM32) - Phil's Lab #32](https://www.youtube.com/watch?v=QRMe02kzVkA) -- [๐Ÿ”˜ Digital Signal Processing (ECSE-4530) Lectures, Fall 2014 (YouTube Playlist)](https://youtube.com/playlist?list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et) -- [๐Ÿ”˜ Udemy โ€“ Digital Signal Processing (DSP) From Ground Up in C](https://www.udemy.com/course/digital-signal-processing-dsp-from-ground-uptm-in-c/) -- [๐Ÿ”˜ Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications - Sen M. Kuo, Bob H. Lee, Wenshun Tian](https://www.wiley.com/en-us/Real+Time+Digital+Signal+Processing%3A+Fundamentals%2C+Implementations+and+Applications%2C+3rd+Edition-p-9781118414323) -- [๐Ÿ”˜ Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs - Thad B. Welch, Cameron H.G. Wright, Michael G. Morrow](https://www.routledge.com/Real-Time-Digital-Signal-Processing-from-MATLAB-to-C-with-the-TMS320C6x/Welch-Wright-Morrow/p/book/9780367736453) -- [๐Ÿ”˜ Schaum's Outline of Signals and Systems - Hwei P. Hsu](https://www.mhprofessional.com/schaum-s-outline-of-signals-and-systems-fourth-edition-9781260454246-usa) -- [๐Ÿ’Ž Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis](https://a.co/d/75P5PiE) +- [๐Ÿ“˜๐Ÿ’Ž The Scientist and Engineer's Guide to Digital Signal Processing - Steven W. Smith](https://www.dspguide.com/pdfbook.htm) +- [๐ŸŽž๏ธ FIR Filter Design and Software Implementation - Phil's Lab #17](https://www.youtube.com/watch?v=uNNNj9AZisM) +- [๐ŸŽž๏ธ IIR Filters - Theory and Implementation (STM32) - Phil's Lab #32](https://www.youtube.com/watch?v=QRMe02kzVkA) +- [๐ŸŽž๏ธ Digital Signal Processing (ECSE-4530) Lectures, Fall 2014 (YouTube Playlist)](https://youtube.com/playlist?list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et) +- [๐ŸŽž๏ธ Udemy โ€“ Digital Signal Processing (DSP) From Ground Up in C](https://www.udemy.com/course/digital-signal-processing-dsp-from-ground-uptm-in-c/) +- [๐Ÿ“˜ Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications - Sen M. Kuo, Bob H. Lee, Wenshun Tian](https://www.wiley.com/en-us/Real+Time+Digital+Signal+Processing%3A+Fundamentals%2C+Implementations+and+Applications%2C+3rd+Edition-p-9781118414323) +- [๐Ÿ“˜ Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs - Thad B. Welch, Cameron H.G. Wright, Michael G. Morrow](https://www.routledge.com/Real-Time-Digital-Signal-Processing-from-MATLAB-to-C-with-the-TMS320C6x/Welch-Wright-Morrow/p/book/9780367736453) +- [๐Ÿ“˜ Schaum's Outline of Signals and Systems - Hwei P. Hsu](https://www.mhprofessional.com/schaum-s-outline-of-signals-and-systems-fourth-edition-9781260454246-usa) +- [๐Ÿ“˜๐Ÿ’Ž Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis](https://a.co/d/75P5PiE) #### ๐Ÿ”ต Discrete Fourier Transform / FFT -- [๐Ÿ”˜ Discrete Fourier Transform - Simple Step by Step](https://www.youtube.com/watch?v=mkGsMWi_j4Q) -- [๐Ÿ”˜ The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?](https://youtu.be/h7apO7q16V0) -- [๐Ÿ”˜ The FFT Algorithm - Simple Step by Step](https://www.youtube.com/watch?v=htCj9exbGo0) -- [๐Ÿ”˜ STM32 Fast Fourier Transform (CMSIS DSP FFT) - Phil's Lab #111](https://youtu.be/d1KvgOwWvkM) +- [๐ŸŽž๏ธ Discrete Fourier Transform - Simple Step by Step](https://www.youtube.com/watch?v=mkGsMWi_j4Q) +- [๐ŸŽž๏ธ The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?](https://youtu.be/h7apO7q16V0) +- [๐ŸŽž๏ธ The FFT Algorithm - Simple Step by Step](https://www.youtube.com/watch?v=htCj9exbGo0) +- [๐ŸŽž๏ธ STM32 Fast Fourier Transform (CMSIS DSP FFT) - Phil's Lab #111](https://youtu.be/d1KvgOwWvkM) ### โœณ๏ธ Control Theory -- [๐Ÿ”˜ Understanding Control Systems (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd) -- [๐Ÿ”˜ Control Systems - CircuitBread (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfYdTiQCV_p4YZNJWExM-5_g0fk9bHDL8) -- [๐Ÿ’Ž Control Systems Engineering - Norman S. Nise](https://www.wiley.com/en-us/Control+Systems+Engineering%2C+8th+Edition-p-9781119474227) -- [๐Ÿ’Ž Modern Control Systems - Richard C. Dorf, Robert H. Bishop](https://www.pearson.com/en-us/subject-catalog/p/modern-control-systems/P200000003484/9780137307098) +- [๐ŸŽž๏ธ Understanding Control Systems (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd) +- [๐ŸŽž๏ธ Control Systems - CircuitBread (YouTube Playlist)](https://www.youtube.com/playlist?list=PLfYdTiQCV_p4YZNJWExM-5_g0fk9bHDL8) +- [๐Ÿ“˜๐Ÿ’Ž Control Systems Engineering - Norman S. Nise](https://www.wiley.com/en-us/Control+Systems+Engineering%2C+8th+Edition-p-9781119474227) +- [๐Ÿ“˜๐Ÿ’Ž Modern Control Systems - Richard C. Dorf, Robert H. Bishop](https://www.pearson.com/en-us/subject-catalog/p/modern-control-systems/P200000003484/9780137307098) #### ๐Ÿ”ต PID Controller -- [๐Ÿ‘ถ What is a PID Controller? | DigiKey](https://www.youtube.com/watch?v=tFVAaUcOm4I) -- [๐Ÿ”˜ PID Controller Explained](https://www.youtube.com/watch?v=fv6dLTEvl74) -- [๐Ÿ”˜ Understanding PID Control (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y) -- [๐Ÿ”˜ PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U) +- [๐ŸŽž๏ธ๐Ÿ‘ถ What is a PID Controller? | DigiKey](https://www.youtube.com/watch?v=tFVAaUcOm4I) +- [๐ŸŽž๏ธ PID Controller Explained](https://www.youtube.com/watch?v=fv6dLTEvl74) +- [๐ŸŽž๏ธ Understanding PID Control (YouTube Playlist)](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y) +- [๐ŸŽž๏ธ PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U) #### ๐Ÿ”ต MATLAB / Simulink -- [๐Ÿ”˜ MATLAB Tutorials: Getting Started with MATLAB (YouTube Playlist)](https://youtube.com/playlist?list=PL7CAABC40B2825C8B) -- [๐Ÿ”˜ Getting Started with Simulink (YouTube Playlist)](https://youtube.com/playlist?list=PL484BA2AD3AE4C2D0) -- [๐Ÿ”˜ Udemy โ€“ MATLAB/SIMULINK Bible|Go From Zero to Hero!](https://www.udemy.com/course/matlabsimulink-biblego-from-zero-to-hero/) +- [๐ŸŽž๏ธ MATLAB Tutorials: Getting Started with MATLAB (YouTube Playlist)](https://youtube.com/playlist?list=PL7CAABC40B2825C8B) +- [๐ŸŽž๏ธ Getting Started with Simulink (YouTube Playlist)](https://youtube.com/playlist?list=PL484BA2AD3AE4C2D0) +- [๐ŸŽž๏ธ Udemy โ€“ MATLAB/SIMULINK Bible|Go From Zero to Hero!](https://www.udemy.com/course/matlabsimulink-biblego-from-zero-to-hero/) _________________ @@ -892,12 +897,12 @@ Embedded systems can be programmed with either an operating system (OS) or direc #### ๐Ÿ”ต Operating System Fundamentals -- [๐Ÿ‘ถ Putting the โ€œYouโ€ in CPU](https://cpu.land/) -- [๐Ÿ‘ถ The little book about OS development](https://littleosbook.github.io/) -- [๐Ÿ‘ถ Operating Systems: From 0 to 1](https://github.com/tuhdo/os01/blob/master/Operating_Systems_From_0_to_1.pdf) -- [๐Ÿ’Ž Operating Systems: Three Easy Pieces - Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau](https://pages.cs.wisc.edu/~remzi/OSTEP/) -- [๐Ÿ’Ž Modern Operating Systems - Andrew S. Tanenbaum, Herbert Bos](https://www.pearson.com/en-us/subject-catalog/p/modern-operating-systems/P200000003295) -- [๐Ÿ”˜ Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/) +- [๐Ÿ“๐Ÿ‘ถ Putting the โ€œYouโ€ in CPU](https://cpu.land/) +- [๐Ÿ“˜๐Ÿ‘ถ The little book about OS development](https://littleosbook.github.io/) +- [๐Ÿ“˜๐Ÿ‘ถ Operating Systems: From 0 to 1](https://github.com/tuhdo/os01/blob/master/Operating_Systems_From_0_to_1.pdf) +- [๐Ÿ“˜๐Ÿ’Ž Operating Systems: Three Easy Pieces - Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau](https://pages.cs.wisc.edu/~remzi/OSTEP/) +- [๐Ÿ“˜๐Ÿ’Ž Modern Operating Systems - Andrew S. Tanenbaum, Herbert Bos](https://www.pearson.com/en-us/subject-catalog/p/modern-operating-systems/P200000003295) +- [๐Ÿ“ Writing an OS in Rust - Philipp Oppermann's blog](https://os.phil-opp.com/) #### ๐Ÿ”ต Real-Time Operating Systems @@ -905,153 +910,153 @@ Real-time operating systems (RTOS) are specialized operating systems designed to ##### ๐Ÿ”ถ RTOS Basics -- [๐Ÿ”˜ Bare-metal and RTOS Based Embedded Systems](https://microcontrollerslab.com/difference-bare-metal-and-rtos-based-embedded-systems/) -- [๐Ÿ”˜ RTOS vs. Bare Metal: Navigating Performance, Complexity, and Efficiency](https://weston-embedded.com/support/media-articles/119-rtos-vs-bare-metal-navigating-performance-complexity-and-efficiency) -- [๐Ÿ”˜ The Pros and Cons of RTOS vs Bare Metal: Which Will You Choose?](https://medium.com/@lanceharvieruntime/the-pros-and-cons-of-rtos-vs-bare-metal-which-will-you-choose-756e33ba6df7) -- [๐Ÿ”˜ FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/) -- [๐Ÿ”˜ Real-Time Systems Concepts](https://micrium.atlassian.net/wiki/spaces/osiidoc/pages/163855/Real-Time+Systems+Concepts) -- [๐Ÿ”˜ RTOS Fundamentals](https://www.freertos.org/implementation/a00002.html) -- [๐Ÿ”˜ A Simple Scheduler via an Interrupt-driven Actor Model](https://interrupt.memfault.com/blog/hardware-actor-scheduler) -- [๐Ÿ”˜ ARM Cortex-M RTOS Context Switching](https://interrupt.memfault.com/blog/cortex-m-rtos-context-switching) -- [๐Ÿ”˜ RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs) -- [๐Ÿ”˜ Beyond the RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chytjkg63-tM7MI0BvGxxPIP) +- [๐Ÿ“ Bare-metal and RTOS Based Embedded Systems](https://microcontrollerslab.com/difference-bare-metal-and-rtos-based-embedded-systems/) +- [๐Ÿ“ RTOS vs. Bare Metal: Navigating Performance, Complexity, and Efficiency](https://weston-embedded.com/support/media-articles/119-rtos-vs-bare-metal-navigating-performance-complexity-and-efficiency) +- [๐Ÿ“ The Pros and Cons of RTOS vs Bare Metal: Which Will You Choose?](https://medium.com/@lanceharvieruntime/the-pros-and-cons-of-rtos-vs-bare-metal-which-will-you-choose-756e33ba6df7) +- [๐Ÿ“ FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/) +- [๐Ÿ”— Real-Time Systems Concepts](https://micrium.atlassian.net/wiki/spaces/osiidoc/pages/163855/Real-Time+Systems+Concepts) +- [๐Ÿ”— RTOS Fundamentals](https://www.freertos.org/implementation/a00002.html) +- [๐Ÿ“ A Simple Scheduler via an Interrupt-driven Actor Model](https://interrupt.memfault.com/blog/hardware-actor-scheduler) +- [๐Ÿ“ ARM Cortex-M RTOS Context Switching](https://interrupt.memfault.com/blog/cortex-m-rtos-context-switching) +- [๐ŸŽž๏ธ RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs) +- [๐ŸŽž๏ธ Beyond the RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLPW8O6W-1chytjkg63-tM7MI0BvGxxPIP) ##### ๐Ÿ”ถ FreeRTOS -- [๐Ÿ”˜ FreeRTOS - Market leading RTOS](https://www.freertos.org) -- [๐Ÿ‘ถ Introduction to RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQ4hAPU1cJED6t3DU0h34bz) -- [๐Ÿ’Ž Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide](https://www.freertos.org/Documentation/RTOS_book.html) -- [๐Ÿ‘ถ Microchip University - FreeRTOS Simplified: A Beginner's Guide to Develop and Debug FreeRTOS Applications](https://mu.microchip.com/freertos-simplified) -- [๐Ÿ”˜ Getting Started With STM32 and Nucleo Part 3: FreeRTOS - How To Run Multiple Threads w/ CMSIS-RTOS](https://www.youtube.com/watch?v=CdpgqpuPSyQ) -- [๐Ÿ”˜ Hands-On RTOS with Microcontrollers: Building real-time embedded systems using FreeRTOS, STM32 MCUs, and SEGGER debug tools - Brian Amos](https://a.co/d/11MSPlo) -- [๐Ÿ”˜ Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay](https://link.springer.com/book/10.1007/978-1-4842-3624-6) -- [๐Ÿ”˜ SafeRTOS - Safety Critical Real-Time OS](https://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.html) +- [๐Ÿ”— FreeRTOS - Market leading RTOS](https://www.freertos.org) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Introduction to RTOS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEBQazB0HUyQ4hAPU1cJED6t3DU0h34bz) +- [๐Ÿ“˜๐Ÿ’Ž Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide](https://www.freertos.org/Documentation/RTOS_book.html) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - FreeRTOS Simplified: A Beginner's Guide to Develop and Debug FreeRTOS Applications](https://mu.microchip.com/freertos-simplified) +- [๐ŸŽž๏ธ Getting Started With STM32 and Nucleo Part 3: FreeRTOS - How To Run Multiple Threads w/ CMSIS-RTOS](https://www.youtube.com/watch?v=CdpgqpuPSyQ) +- [๐Ÿ“˜ Hands-On RTOS with Microcontrollers: Building real-time embedded systems using FreeRTOS, STM32 MCUs, and SEGGER debug tools - Brian Amos](https://a.co/d/11MSPlo) +- [๐Ÿ“˜ Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay](https://link.springer.com/book/10.1007/978-1-4842-3624-6) +- [๐Ÿ”— SafeRTOS - Safety Critical Real-Time OS](https://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.html) ##### ๐Ÿ”ถ Zephyr -- [๐Ÿ”˜ Zephyrยฎ Project](https://www.zephyrproject.org/) -- [๐Ÿ”˜ Zephyr: Tutorial for Beginners](https://maksimdrachov.github.io/zephyr-rtos-tutorial/) -- [๐Ÿ”˜ Why We Moved from FreeRTOS to Zephyr RTOS](https://www.zephyrproject.org/why-we-moved-from-freertos-to-zephyr-rtos/) -- [๐Ÿ”˜ nRF Connect SDK](https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/) -- [๐Ÿ”˜ ESP32 on Zephyr OS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEQVp_6G_y4iFfemAbFsKw6tsGABarTwp) +- [๐Ÿ”— Zephyrยฎ Project](https://www.zephyrproject.org/) +- [๐Ÿ”— Zephyr: Tutorial for Beginners](https://maksimdrachov.github.io/zephyr-rtos-tutorial/) +- [๐Ÿ“ Why We Moved from FreeRTOS to Zephyr RTOS](https://www.zephyrproject.org/why-we-moved-from-freertos-to-zephyr-rtos/) +- [๐Ÿ”— nRF Connect SDK](https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/) +- [๐ŸŽž๏ธ ESP32 on Zephyr OS (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEQVp_6G_y4iFfemAbFsKw6tsGABarTwp) ##### ๐Ÿ”ถ ฮผC/OS / Micriฮผm OS -- [๐Ÿ”˜ Micriฮผm OS](https://www.silabs.com/developers/micrium) -- [๐Ÿ”˜ ยตC/OS-III Documentation](https://micrium.atlassian.net/wiki/spaces/osiiidoc/overview) -- [๐Ÿ”˜ ยตC/OS-III Books](https://weston-embedded.com/micrium-books) -- [๐Ÿ’Ž ยตC/OS-II Documentation (Previously published as a book titled "MicroC/OS-II: The Real-Time Kernel")](https://micrium.atlassian.net/wiki/spaces/osiidoc/overview) +- [๐Ÿ”— Micriฮผm OS](https://www.silabs.com/developers/micrium) +- [๐Ÿ”— ยตC/OS-III Documentation](https://micrium.atlassian.net/wiki/spaces/osiiidoc/overview) +- [๐Ÿ“˜ ยตC/OS-III Books](https://weston-embedded.com/micrium-books) +- [๐Ÿ“˜๐Ÿ’Ž ยตC/OS-II Documentation (Previously published as a book titled "MicroC/OS-II: The Real-Time Kernel")](https://micrium.atlassian.net/wiki/spaces/osiidoc/overview) ##### ๐Ÿ”ถ NuttX -- [๐Ÿ”˜ NuttX - The Apache Software Foundation](https://nuttx.apache.org/) -- [๐Ÿ”˜ NuttX Documentation](https://nuttx.apache.org/docs/latest/) -- [๐Ÿ”˜ Getting Started to NuttX (YouTube Playlist)](https://www.youtube.com/playlist?list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8) +- [๐Ÿ”— NuttX - The Apache Software Foundation](https://nuttx.apache.org/) +- [๐Ÿ”— NuttX Documentation](https://nuttx.apache.org/docs/latest/) +- [๐ŸŽž๏ธ Getting Started to NuttX (YouTube Playlist)](https://www.youtube.com/playlist?list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8) ##### ๐Ÿ”ถ RT-Thread -- [๐Ÿ”˜ RT-Thread | An Open Source Embedded Real-time Operating System](https://www.rt-thread.io/) -- [๐Ÿ”˜ RT-Thread document center](https://www.rt-thread.io/document/site/) -- [๐Ÿ”˜ RT-Thread Beginners Guide (YouTube Playlist)](https://youtube.com/playlist?list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo) +- [๐Ÿ”— RT-Thread | An Open Source Embedded Real-time Operating System](https://www.rt-thread.io/) +- [๐Ÿ”— RT-Thread document center](https://www.rt-thread.io/document/site/) +- [๐ŸŽž๏ธ RT-Thread Beginners Guide (YouTube Playlist)](https://youtube.com/playlist?list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo) ##### ๐Ÿ”ถ Mbed OS -- [๐Ÿ”˜ Mbed OS](https://os.mbed.com/mbed-os/) -- [๐Ÿ”˜ Mbed OS Documentation](https://os.mbed.com/docs/mbed-os/) +- [๐Ÿ”— Mbed OS](https://os.mbed.com/mbed-os/) +- [๐Ÿ”— Mbed OS Documentation](https://os.mbed.com/docs/mbed-os/) ##### ๐Ÿ”ถ QNX -- [๐Ÿ”˜ BlackBerry QNX: Embedded OS, Support, and Services](https://blackberry.qnx.com/en) -- [๐Ÿ”˜ QNX Product Documentation](https://www.qnx.com/developers/docs/index.html) +- [๐Ÿ”— BlackBerry QNX: Embedded OS, Support, and Services](https://blackberry.qnx.com/en) +- [๐Ÿ”— QNX Product Documentation](https://www.qnx.com/developers/docs/index.html) ##### ๐Ÿ”ถ VxWorks -- [๐Ÿ”˜ VxWorks | Industry Leading RTOS for Embedded Systems](https://www.windriver.com/products/vxworks) -- [๐Ÿ”˜ VxWorks Documentation](https://docs.windriver.com/category/os_vxworks?labelkey=os_vxworks) -- [๐Ÿ”˜ VxWORKS-RTOS - Kumar M (YouTube Playlist)](https://www.youtube.com/playlist?list=PLyp1I7W35-q34sYWBlBg8xgoqsizZ57P7) +- [๐Ÿ”— VxWorks | Industry Leading RTOS for Embedded Systems](https://www.windriver.com/products/vxworks) +- [๐Ÿ”— VxWorks Documentation](https://docs.windriver.com/category/os_vxworks?labelkey=os_vxworks) +- [๐ŸŽž๏ธ VxWORKS-RTOS - Kumar M (YouTube Playlist)](https://www.youtube.com/playlist?list=PLyp1I7W35-q34sYWBlBg8xgoqsizZ57P7) ##### ๐Ÿ”ถ Azure RTOS (ThreadX) -- [๐Ÿ”˜ Azure RTOS - Making embedded IoT development and connectivity easy](https://azure.microsoft.com/en-us/services/rtos/) -- [๐Ÿ”˜ Microsoft Azure RTOS documentation](https://learn.microsoft.com/en-us/azure/rtos/) -- [๐Ÿ”˜ Azure RTOS ThreadX](https://github.com/azure-rtos/threadx) +- [๐Ÿ”— Azure RTOS - Making embedded IoT development and connectivity easy](https://azure.microsoft.com/en-us/services/rtos/) +- [๐Ÿ”— Microsoft Azure RTOS documentation](https://learn.microsoft.com/en-us/azure/rtos/) +- [๐Ÿ”— Azure RTOS ThreadX](https://github.com/azure-rtos/threadx) #### ๐Ÿ”ต Embedded Linux Embedded Linux is a specialized version of the Linux operating system tailored for embedded systems. It's designed to operate on devices with resource constraints, such as limited memory, processing power, and power consumption. -- [๐Ÿ”˜ What Is Embedded Linux?](https://www.windriver.com/solutions/learning/embedded-linux) -- [๐Ÿ”˜ FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/) -- [๐Ÿ‘ถ Introduction to Embedded Linux (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyTpoJoZecRK6PpDG31Y7RPB) -- [๐Ÿ”˜ Mastering Embedded Linux Series - George Hilliard's blog](https://www.thirtythreeforty.net/series/mastering-embedded-linux/) -- [๐Ÿ’Ž Mastering Embedded Linux Programming - Chris Simmonds](https://www.packtpub.com/product/mastering-embedded-linux-programming-third-edition/9781789530384) -- [๐Ÿ’Ž Coursera - Advanced Embedded Linux Development Specialization](https://www.coursera.org/specializations/advanced-embedded-linux-development) -- [๐Ÿ”˜ Linux From Scratch - step-by-step instructions for building your own custom Linux system](https://www.linuxfromscratch.org/) -- [๐Ÿ”˜ Automotive Grade Linux (AGL)](https://docs.automotivelinux.org/) -- [๐Ÿ”˜ Real Time Linux and `PREEMPT_RT` Patch](https://wiki.linuxfoundation.org/realtime/start) -- [๐Ÿ”˜ Android Open Source Project](https://source.android.com) -- [๐Ÿ”˜ Android Automotive](https://source.android.com/docs/automotive) +- [๐Ÿ“ What Is Embedded Linux?](https://www.windriver.com/solutions/learning/embedded-linux) +- [๐Ÿ“ FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Introduction to Embedded Linux (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyTpoJoZecRK6PpDG31Y7RPB) +- [๐Ÿ“ Mastering Embedded Linux Series - George Hilliard's blog](https://www.thirtythreeforty.net/series/mastering-embedded-linux/) +- [๐Ÿ“˜๐Ÿ’Ž Mastering Embedded Linux Programming - Chris Simmonds](https://www.packtpub.com/product/mastering-embedded-linux-programming-third-edition/9781789530384) +- [๐ŸŽž๏ธ๐Ÿ’Ž Coursera - Advanced Embedded Linux Development Specialization](https://www.coursera.org/specializations/advanced-embedded-linux-development) +- [๐Ÿ”— Linux From Scratch - step-by-step instructions for building your own custom Linux system](https://www.linuxfromscratch.org/) +- [๐Ÿ”— Automotive Grade Linux (AGL)](https://docs.automotivelinux.org/) +- [๐Ÿ”— Real Time Linux and `PREEMPT_RT` Patch](https://wiki.linuxfoundation.org/realtime/start) +- [๐Ÿ”— Android Open Source Project](https://source.android.com) +- [๐Ÿ”— Android Automotive](https://source.android.com/docs/automotive) ##### ๐Ÿ”ถ Linux Kernel -- [๐Ÿ‘ถ Linux Kernel Development - Robert Love](https://www.oreilly.com/library/view/linux-kernel-development/9780768696974/) -- [๐Ÿ’Ž The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/) -- [๐Ÿ”˜ How Linux Works - Brian Ward](https://nostarch.com/howlinuxworks3) +- [๐Ÿ“˜๐Ÿ‘ถ Linux Kernel Development - Robert Love](https://www.oreilly.com/library/view/linux-kernel-development/9780768696974/) +- [๐Ÿ“˜๐Ÿ’Ž The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/) +- [๐Ÿ“˜ How Linux Works - Brian Ward](https://nostarch.com/howlinuxworks3) ##### ๐Ÿ”ถ Linux Device Drivers -- [๐Ÿ‘ถ Writing a Simple Linux Kernel Module](https://blog.sourcerer.io/writing-a-simple-linux-kernel-module-d9dc3762c234) -- [๐Ÿ’Ž Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman](https://lwn.net/Kernel/LDD3/) -- [๐Ÿ”˜ The Linux Kernel Module Programming Guide](https://sysprog21.github.io/lkmpg/) -- [๐Ÿ”˜ Mastering Linux Device Driver Development - John Madieu](https://www.packtpub.com/product/mastering-linux-device-driver-development/9781789342048) -- [๐Ÿ”˜ Kernel Driver with Rust in 2022](https://not-matthias.github.io/posts/kernel-driver-with-rust/) +- [๐Ÿ“๐Ÿ‘ถ Writing a Simple Linux Kernel Module](https://blog.sourcerer.io/writing-a-simple-linux-kernel-module-d9dc3762c234) +- [๐Ÿ“˜๐Ÿ’Ž Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman](https://lwn.net/Kernel/LDD3/) +- [๐Ÿ“˜ The Linux Kernel Module Programming Guide](https://sysprog21.github.io/lkmpg/) +- [๐Ÿ“˜ Mastering Linux Device Driver Development - John Madieu](https://www.packtpub.com/product/mastering-linux-device-driver-development/9781789342048) +- [๐Ÿ“ Kernel Driver with Rust in 2022](https://not-matthias.github.io/posts/kernel-driver-with-rust/) ##### ๐Ÿ”ถ U-Boot -- [๐Ÿ”˜ The U-Boot Documentation](https://u-boot.readthedocs.io/en/latest/) +- [๐Ÿ”— The U-Boot Documentation](https://u-boot.readthedocs.io/en/latest/) ##### ๐Ÿ”ถ Buildroot -- [๐Ÿ”˜ Buildroot Documentation](https://buildroot.org/docs.html) -- [๐Ÿ”˜ Introduction to Embedded Linux Part 1 - Buildroot | Digi-Key Electronics](https://www.youtube.com/watch?v=9vsu67uMcko) -- [๐Ÿ”˜ https://rickcarlino.com/2021/building-tiny-raspberry-pi-linux-images-with-buildroot.html](https://rickcarlino.com/2021/building-tiny-raspberry-pi-linux-images-with-buildroot.html) +- [๐Ÿ”— Buildroot Documentation](https://buildroot.org/docs.html) +- [๐ŸŽž๏ธ Introduction to Embedded Linux Part 1 - Buildroot | Digi-Key Electronics](https://www.youtube.com/watch?v=9vsu67uMcko) +- [๐Ÿ“ Building Tiny Raspberry Pi Linux Images With Buildroot](https://rickcarlino.com/2021/building-tiny-raspberry-pi-linux-images-with-buildroot.html) ##### ๐Ÿ”ถ Yocto -- [๐Ÿ”˜ Yocto Project Quick Build](https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html) -- [๐Ÿ’Ž Yocto Project Documentation](https://docs.yoctoproject.org/index.html) -- [๐Ÿ”˜ Introduction to Embedded Linux Part 2 - Yocto Project | Digi-Key Electronics](https://www.youtube.com/watch?v=2-PwskQrZac&t=7s) -- [๐Ÿ”˜ Build Linux Image for Raspberry Pi board using Yocto Project](https://tutorialadda.com/yocto/create-your-own-linux-image-for-the-raspberry-pi-board-using-yocto-project) -- [๐Ÿ”˜ Yocto Project Tutorial Series (Basic to Advance) (YouTube Playlist)](https://www.youtube.com/playlist?list=PLwqS94HTEwpQmgL1UsSwNk_2tQdzq3eVJ) -- [๐Ÿ”˜ Udemy โ€“ Embedded Linux using Yocto](https://www.udemy.com/course/embedded-linux-using-yocto/) -- [๐Ÿ’Ž Embedded Linux Systems with the Yocto Project - Rudolf J.Streif](https://www.oreilly.com/library/view/embedded-linux-systems/9780133443301/) -- [๐Ÿ”˜ Embedded Linux Development using Yocto Project Cookbook - Alex Gonzalez](https://www.oreilly.com/library/view/embedded-linux-development/9781788399210/) +- [๐Ÿ”— Yocto Project Quick Build](https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html) +- [๐Ÿ”—๐Ÿ’Ž Yocto Project Documentation](https://docs.yoctoproject.org/index.html) +- [๐ŸŽž๏ธ Introduction to Embedded Linux Part 2 - Yocto Project | Digi-Key Electronics](https://www.youtube.com/watch?v=2-PwskQrZac&t=7s) +- [๐Ÿ“ Build Linux Image for Raspberry Pi board using Yocto Project](https://tutorialadda.com/yocto/create-your-own-linux-image-for-the-raspberry-pi-board-using-yocto-project) +- [๐ŸŽž๏ธ Yocto Project Tutorial Series (Basic to Advance) (YouTube Playlist)](https://www.youtube.com/playlist?list=PLwqS94HTEwpQmgL1UsSwNk_2tQdzq3eVJ) +- [๐ŸŽž๏ธ Udemy โ€“ Embedded Linux using Yocto](https://www.udemy.com/course/embedded-linux-using-yocto/) +- [๐Ÿ“˜๐Ÿ’Ž Embedded Linux Systems with the Yocto Project - Rudolf J.Streif](https://www.oreilly.com/library/view/embedded-linux-systems/9780133443301/) +- [๐Ÿ“˜ Embedded Linux Development using Yocto Project Cookbook - Alex Gonzalez](https://www.oreilly.com/library/view/embedded-linux-development/9781788399210/) ##### ๐Ÿ”ถ Multithreading & Parallel Processing -- [๐Ÿ”˜ Threading/Concurrency vs Parallelism](http://www.danielmoth.com/Blog/threadingconcurrency-vs-parallelism.aspx) -- [๐Ÿ”˜ Multi-threading and Parallel Programming](https://dev.to/kwereutosu/multi-threading-and-parallel-programming-1l9m) -- [๐Ÿ”˜ Multitasking vs Multithreading vs Multiprocessing](https://medium.com/codex/multitasking-vs-multithreading-vs-multiprocessing-2b0087c861ae) -- [๐Ÿ’Ž Programming with POSIX Threads - David Butenhof](https://a.co/d/9R6DswF) -- [๐Ÿ”˜ Parallel Programming and Performance Optimization With OpenMP](https://passlab.github.io/OpenMPProgrammingBook/index.html) -- [๐Ÿ”˜ Introduction to OpenMP - Tim Mattson (Intel) (YouTube Playlist)](https://youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG) -- [๐Ÿ”˜ OpenCL Tutorials](https://www.intel.com/content/www/us/en/developer/articles/training/opencl-tutorials.html) -- [๐Ÿ”˜ CUDA C++ Programming Guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html) -- [๐Ÿ”˜ C++ Concurrency in Action - Anthony Williams](https://www.manning.com/books/c-plus-plus-concurrency-in-action) +- [๐Ÿ“ Threading/Concurrency vs Parallelism](http://www.danielmoth.com/Blog/threadingconcurrency-vs-parallelism.aspx) +- [๐Ÿ“ Multi-threading and Parallel Programming](https://dev.to/kwereutosu/multi-threading-and-parallel-programming-1l9m) +- [๐Ÿ“ Multitasking vs Multithreading vs Multiprocessing](https://medium.com/codex/multitasking-vs-multithreading-vs-multiprocessing-2b0087c861ae) +- [๐Ÿ“˜๐Ÿ’Ž Programming with POSIX Threads - David Butenhof](https://a.co/d/9R6DswF) +- [๐Ÿ”— Parallel Programming and Performance Optimization With OpenMP](https://passlab.github.io/OpenMPProgrammingBook/index.html) +- [๐ŸŽž๏ธ Introduction to OpenMP - Tim Mattson (Intel) (YouTube Playlist)](https://youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG) +- [๐Ÿ”— OpenCL Tutorials](https://www.intel.com/content/www/us/en/developer/articles/training/opencl-tutorials.html) +- [๐Ÿ”— CUDA C++ Programming Guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html) +- [๐Ÿ“˜ C++ Concurrency in Action - Anthony Williams](https://www.manning.com/books/c-plus-plus-concurrency-in-action) ##### ๐Ÿ”ถ Inter-Process Communication (IPC) -- [๐Ÿ”˜ Inter Process Communication (IPC)](https://www.scaler.com/topics/operating-system/inter-process-communication-in-os/) -- [๐Ÿ”˜ What Is Inter-Process Communication In Linux?](https://www.scaler.com/topics/ipc-in-linux/) -- [๐Ÿ”˜ Udemy โ€“ Linux Inter Process Communication (IPC) from Scratch in C](https://www.udemy.com/course/linuxipc/) -- [๐Ÿ”˜ Udemy โ€“ Multi-Threading and IPC with Qt 5 C++](https://www.udemy.com/course/multi-threading-and-ipc-with-qt-c-plus-plus/) -- [๐Ÿ”˜ D-Bus Tutorial](https://dbus.freedesktop.org/doc/dbus-tutorial.html) +- [๐Ÿ“ Inter Process Communication (IPC)](https://www.scaler.com/topics/operating-system/inter-process-communication-in-os/) +- [๐Ÿ“ What Is Inter-Process Communication In Linux?](https://www.scaler.com/topics/ipc-in-linux/) +- [๐ŸŽž๏ธ Udemy โ€“ Linux Inter Process Communication (IPC) from Scratch in C](https://www.udemy.com/course/linuxipc/) +- [๐ŸŽž๏ธ Udemy โ€“ Multi-Threading and IPC with Qt 5 C++](https://www.udemy.com/course/multi-threading-and-ipc-with-qt-c-plus-plus/) +- [๐Ÿ“ D-Bus Tutorial](https://dbus.freedesktop.org/doc/dbus-tutorial.html) ##### ๐Ÿ”ถ Qt Framework -- [๐Ÿ”˜ Qt Documentation](https://doc.qt.io/) +- [๐Ÿ”— Qt Documentation](https://doc.qt.io/) _________________ @@ -1059,34 +1064,34 @@ _________________ Debugging embedded systems involves identifying and resolving software defects and hardware malfunctions. Various techniques are employed to pinpoint the root causes of issues, such as static code analysis, dynamic analysis, simulation and emulation, in-circuit debugging, and hardware debugging. -- [๐Ÿ”˜ Using Asserts in Embedded Systems](https://interrupt.memfault.com/blog/asserts-in-embedded-systems) +- [๐Ÿ“ Using Asserts in Embedded Systems](https://interrupt.memfault.com/blog/asserts-in-embedded-systems) #### ๐Ÿ”ต JTAG / SWD JTAG and SWD (Serial Wire Debug) are two popular interface protocols used for debugging and programming embedded systems. JTAG is a more general-purpose protocol that can be used to debug and program a wider range of devices, while SWD is a simpler and more compact protocol that is specifically designed for ARM microcontrollers. -- [๐Ÿ”˜ A Deep Dive into ARM Cortex-M Debug Interfaces](https://interrupt.memfault.com/blog/a-deep-dive-into-arm-cortex-m-debug-interfaces) -- [๐Ÿ”˜ Guide: Connecting your debugger](https://stm32-base.org/guides/connecting-your-debugger.html) -- [๐Ÿ”˜ STM32 + SWD + ST-Link + CubeIDE | Debugging on Custom Hardware Tutorial - Phil's Lab #4](https://www.youtube.com/watch?v=qMUzLU636s8) +- [๐Ÿ“ A Deep Dive into ARM Cortex-M Debug Interfaces](https://interrupt.memfault.com/blog/a-deep-dive-into-arm-cortex-m-debug-interfaces) +- [๐Ÿ”— Guide: Connecting your debugger](https://stm32-base.org/guides/connecting-your-debugger.html) +- [๐ŸŽž๏ธ STM32 + SWD + ST-Link + CubeIDE | Debugging on Custom Hardware Tutorial - Phil's Lab #4](https://www.youtube.com/watch?v=qMUzLU636s8) #### ๐Ÿ”ต GDB GDB (GNU Debugger) is a powerful and versatile debugger for source-level and machine-level debugging. It supports a wide range of programming languages, including C, C++, Objective-C, Java, and Rust. GDB is a free and open-source software tool that is widely used by developers and researchers. -- [๐Ÿ”˜ Advanced GDB Usage](https://interrupt.memfault.com/blog/advanced-gdb) -- [๐Ÿ”˜ How do breakpoints even work?](https://interrupt.memfault.com/blog/cortex-m-breakpoints) -- [๐Ÿ”˜ GNU GDB Debugger Command Cheat Sheet](http://www.yolinux.com/TUTORIALS/GDB-Commands.html) -- [๐Ÿ”˜ gdbgui - A browser-based frontend to gdb (gnu debugger) ](https://www.gdbgui.com/) -- [๐Ÿ”˜ everyone needs to stop using print debugging (do THIS instead)](https://www.youtube.com/watch?v=3T3ZDquDDVg) -- [๐Ÿ”˜ GDB is REALLY easy! Find Bugs in Your Code with Only A Few Commands](https://www.youtube.com/watch?v=Dq8l1_-QgAc) -- [๐Ÿ”˜ Introduction to ARM Semihosting](https://interrupt.memfault.com/blog/arm-semihosting) +- [๐Ÿ“ Advanced GDB Usage](https://interrupt.memfault.com/blog/advanced-gdb) +- [๐Ÿ“ How do breakpoints even work?](https://interrupt.memfault.com/blog/cortex-m-breakpoints) +- [๐Ÿ”— GNU GDB Debugger Command Cheat Sheet](http://www.yolinux.com/TUTORIALS/GDB-Commands.html) +- [๐Ÿ”— gdbgui - A browser-based frontend to gdb (gnu debugger) ](https://www.gdbgui.com/) +- [๐ŸŽž๏ธ everyone needs to stop using print debugging (do THIS instead)](https://www.youtube.com/watch?v=3T3ZDquDDVg) +- [๐ŸŽž๏ธ GDB is REALLY easy! Find Bugs in Your Code with Only A Few Commands](https://www.youtube.com/watch?v=Dq8l1_-QgAc) +- [๐Ÿ“ Introduction to ARM Semihosting](https://interrupt.memfault.com/blog/arm-semihosting) #### ๐Ÿ”ต OpenOCD OpenOCD (Open On-Chip Debugger) is an open-source software tool that provides a powerful and versatile platform for debugging and programming embedded systems. It serves as an interface between a hardware debug adapter (HDA) and a debugger, such as GNU Debugger (GDB), enabling developers to interact with the target microcontroller or microprocessor. OpenOCD supports a wide range of hardware platforms and provides a comprehensive set of features for hardware debugging, programming, and boundary-scan testing. -- [๐Ÿ”˜ OpenOCD - GitHub repository](https://github.com/openocd-org/openocd) -- [๐Ÿ”˜ This Is 100% How You Should Be Debugging | How to Use OpenOCD to Debug Embedded Software with GDB](https://www.youtube.com/watch?v=_1u7IOnivnM) +- [๐Ÿ”— OpenOCD - GitHub repository](https://github.com/openocd-org/openocd) +- [๐ŸŽž๏ธ This Is 100% How You Should Be Debugging | How to Use OpenOCD to Debug Embedded Software with GDB](https://www.youtube.com/watch?v=_1u7IOnivnM) _________________ @@ -1098,60 +1103,60 @@ Build systems automate the process of compiling and linking source code into exe GCC (the GNU Compiler Collection) is a free and open-source compiler system that can compile programs for many different programming languages, including C, C++, Objective-C, Fortran, Ada, and Go. GCC is a popular choice for embedded systems development due to its open source nature, maturity, stability, portability, performance, and large community. Proprietary compilers like Keil and IAR offer toolchain support, target-specific optimizations, and customer support, which may be preferred for specific projects. -- [๐Ÿ”˜ GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html) -- [๐Ÿ”˜ A Shallow Dive into GNU Make](https://interrupt.memfault.com/blog/gnu-make-guidelines#a-shallow-dive-into-gnu-make) -- [๐Ÿ”˜ The Best and Worst GCC Compiler Flags For Embedded](https://interrupt.memfault.com/blog/best-and-worst-gcc-clang-compiler-flags) -- [๐Ÿ”˜ Building STM32 projects from scratch with cross platform tools like Make, CMake and arm-gcc compiler toolchain (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEg2mgYz66IOcHRvvUDf9O1ZCGy58M1Bt) -- [๐Ÿ”˜ From Zero to main(): Demystifying Firmware Linker Scripts](https://interrupt.memfault.com/blog/how-to-write-linker-scripts-for-firmware) -- [๐Ÿ”˜ Bare Metal - From zero to blink](https://www.linuxembedded.fr/2021/02/bare-metal-from-zero-to-blink) +- [๐Ÿ“ GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html) +- [๐Ÿ“ A Shallow Dive into GNU Make](https://interrupt.memfault.com/blog/gnu-make-guidelines#a-shallow-dive-into-gnu-make) +- [๐Ÿ“ The Best and Worst GCC Compiler Flags For Embedded](https://interrupt.memfault.com/blog/best-and-worst-gcc-clang-compiler-flags) +- [๐ŸŽž๏ธ Building STM32 projects from scratch with cross platform tools like Make, CMake and arm-gcc compiler toolchain (YouTube Playlist)](https://www.youtube.com/playlist?list=PLEg2mgYz66IOcHRvvUDf9O1ZCGy58M1Bt) +- [๐Ÿ“ From Zero to main(): Demystifying Firmware Linker Scripts](https://interrupt.memfault.com/blog/how-to-write-linker-scripts-for-firmware) +- [๐Ÿ“ Bare Metal - From zero to blink](https://www.linuxembedded.fr/2021/02/bare-metal-from-zero-to-blink) #### ๐Ÿ”ต CMake CMake and Make are both tools for building software applications. CMake is a meta-build system that generates Makefiles, which are then used by Make to build the software. CMake is more versatile and cross-platform than Make, and it is becoming the more popular choice for modern software development. -- [๐Ÿ”˜ CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html) -- [๐Ÿ”˜ How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s) -- [๐Ÿ‘ถ The most thoroughly commented embedded CMakeLists file](https://dnedic.github.io/blog/the-most-thoroughly-commented-embedded-cmakelists/) +- [๐Ÿ”— CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html) +- [๐ŸŽž๏ธ How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s) +- [๐Ÿ“๐Ÿ‘ถ The most thoroughly commented embedded CMakeLists file](https://dnedic.github.io/blog/the-most-thoroughly-commented-embedded-cmakelists/) #### ๐Ÿ”ต Bash Scripting Bash scripting serves as a powerful tool in embedded systems development, enabling developers to automate repetitive tasks, handle complex configurations, and manage the embedded system's environment effectively. Bash scripting is a Linux-specific tool that is not natively integrated into Windows. However, it can be accessed via the Windows Subsystem for Linux (WSL). -- [๐Ÿ”˜ Bash scripting cheatsheet](https://devhints.io/bash) -- [๐Ÿ”˜ Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4) +- [๐Ÿ”— Bash scripting cheatsheet](https://devhints.io/bash) +- [๐ŸŽž๏ธ Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4) #### ๐Ÿ”ต Docker Docker containers provide a consistent and isolated environment for building software applications. This can help to improve the reproducibility of builds and reduce the risk of errors. Docker also makes it easier to share build environments, which can save time and effort for developers. -- [๐Ÿ”˜ Docker Docs](https://docs.docker.com/get-started/) -- [๐Ÿ”˜ Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/) -- [๐Ÿ‘ถ Docker for Dummies](https://dev.to/stevenmcgown/docker-for-dummies-2bff) -- [๐Ÿ”˜ Introduction to Docker for the Embedded Developer](https://www.youtube.com/watch?v=Fz7ou-VBk-w) -- [๐Ÿ”˜ Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU) -- [๐Ÿ”˜ A Modern C Development Environment](https://interrupt.memfault.com/blog/a-modern-c-dev-env) +- [๐Ÿ”— Docker Docs](https://docs.docker.com/get-started/) +- [๐Ÿ”— Docker Cheat Sheet](https://dockerlabs.collabnix.com/docker/cheatsheet/) +- [๐Ÿ“๐Ÿ‘ถ Docker for Dummies](https://dev.to/stevenmcgown/docker-for-dummies-2bff) +- [๐ŸŽž๏ธ Introduction to Docker for the Embedded Developer](https://www.youtube.com/watch?v=Fz7ou-VBk-w) +- [๐ŸŽž๏ธ Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU) +- [๐Ÿ“ A Modern C Development Environment](https://interrupt.memfault.com/blog/a-modern-c-dev-env) _________________ ### โœณ๏ธ Software Development Life Cycle (SDLC) Models Software Development Life Cycle (SDLC) models provide a structured approach to software development, guiding the process from planning to deployment and maintenance. These models provide a framework for organizing, managing, and executing software projects, ensuring a consistent and efficient development process. -- [๐Ÿ”˜ What is the software development life cycle?](https://www.coderus.com/the-software-development-lifecycle/) -- [๐Ÿ”˜ Embedded Product Development Life Cycle: Four Main Steps](https://www.sam-solutions.com/blog/embedded-product-development-life-cycle/) +- [๐Ÿ“ What is the software development life cycle?](https://www.coderus.com/the-software-development-lifecycle/) +- [๐Ÿ“ Embedded Product Development Life Cycle: Four Main Steps](https://www.sam-solutions.com/blog/embedded-product-development-life-cycle/) #### ๐Ÿ”ต Agile / SCRUM -- [๐Ÿ”˜ Does agile work with embedded software?](https://www.embedded.com/does-agile-work-with-embedded-software/) -- [๐Ÿ”˜ Scrum for embedded software: Good โ€“ but for reasons other than what your manager thinks](https://www.elektrobit.com/trends/scrum-for-embedded-software/) -- [๐Ÿ”˜ What Is Scrum: A Guide to the Most Popular Agile Framework](https://www.scrumalliance.org/about-scrum) -- [๐Ÿ”˜ An agile guide to scrum meetings](https://www.atlassian.com/agile/scrum/ceremonies) -- [๐Ÿ”˜ What is scaled agile framework? (SAFe)](https://www.atlassian.com/agile/agile-at-scale/what-is-safe) -- [๐Ÿ”˜ Jira - Issue & Project Tracking Software](https://confluence.atlassian.com/jira) +- [๐Ÿ“ Does agile work with embedded software?](https://www.embedded.com/does-agile-work-with-embedded-software/) +- [๐Ÿ“ Scrum for embedded software: Good โ€“ but for reasons other than what your manager thinks](https://www.elektrobit.com/trends/scrum-for-embedded-software/) +- [๐Ÿ“ What Is Scrum: A Guide to the Most Popular Agile Framework](https://www.scrumalliance.org/about-scrum) +- [๐Ÿ“ An agile guide to scrum meetings](https://www.atlassian.com/agile/scrum/ceremonies) +- [๐Ÿ“ What is scaled agile framework? (SAFe)](https://www.atlassian.com/agile/agile-at-scale/what-is-safe) +- [๐Ÿ”— Jira - Issue & Project Tracking Software](https://confluence.atlassian.com/jira) #### ๐Ÿ”ต V-Model (V-cycle) -- [๐Ÿ”˜ What is the V model for software development](https://x-engineer.org/v-model-software-development/) -- [๐Ÿ”˜ V Model In Software Engineering: Ultimate Guideline](https://biplus.com.vn/v-model-in-software-engineering/) +- [๐Ÿ“ What is the V model for software development](https://x-engineer.org/v-model-software-development/) +- [๐Ÿ“ V Model In Software Engineering: Ultimate Guideline](https://biplus.com.vn/v-model-in-software-engineering/) _________________ @@ -1161,12 +1166,12 @@ Version control systems are essential tools for managing changes to code and oth #### ๐Ÿ”ต Git -- [๐Ÿ‘ถ Git Tutorial for Beginners: Learn Git in 1 Hour](https://www.youtube.com/watch?v=8JJ101D3knE) -- [๐Ÿ”˜ Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git](https://www.youtube.com/watch?v=Uszj_k0DGsg) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Git Tutorial for Beginners: Learn Git in 1 Hour](https://www.youtube.com/watch?v=8JJ101D3knE) +- [๐ŸŽž๏ธ Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git](https://www.youtube.com/watch?v=Uszj_k0DGsg) #### ๐Ÿ”ต SVN (Subversion) -- [๐Ÿ”˜ Apacheยฎ Subversionยฎ](https://subversion.apache.org/) +- [๐Ÿ”— Apacheยฎ Subversionยฎ](https://subversion.apache.org/) _________________ @@ -1174,68 +1179,68 @@ _________________ Testing is an integral part of the embedded systems development process, ensuring the quality, reliability, and safety of these systems. It involves a range of techniques, from unit testing to system testing, to validate the functionality and performance of the software and hardware components. -- [๐Ÿ”˜ Embedded Testing](https://artoftesting.com/embedded-testing) -- [๐Ÿ”˜ What is Embedded Testing in Software Testing?](https://www.guru99.com/embedded-software-testing.html) -- [๐Ÿ”˜ Verification vs Validation in Embedded Software](https://www.parasoft.com/blog/verification-vs-validation-in-embedded-software/) +- [๐Ÿ“ Embedded Testing](https://artoftesting.com/embedded-testing) +- [๐Ÿ“ What is Embedded Testing in Software Testing?](https://www.guru99.com/embedded-software-testing.html) +- [๐Ÿ“ Verification vs Validation in Embedded Software](https://www.parasoft.com/blog/verification-vs-validation-in-embedded-software/) #### ๐Ÿ”ต Test Driven Development (TDD) -- [๐Ÿ’Ž Test Driven Development for Embedded C - James Grenning](https://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X) -- [๐Ÿ”˜ Testing: Unit VS Integration VS Regression VS Acceptance](https://medium.com/@touseefmurtaza1993/testing-unit-vs-integration-vs-regression-vs-acceptance-a3e190cc54dd) -- [๐Ÿ”˜ Firmware Testing with Renode and GitHub Actions](https://interrupt.memfault.com/blog/test-automation-renode) -- [๐Ÿ”˜ Balancing Test Coverage vs. Overhead](https://interrupt.memfault.com/blog/testing-vs-overhead) +- [๐Ÿ“˜๐Ÿ’Ž Test Driven Development for Embedded C - James Grenning](https://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X) +- [๐Ÿ“ Testing: Unit VS Integration VS Regression VS Acceptance](https://medium.com/@touseefmurtaza1993/testing-unit-vs-integration-vs-regression-vs-acceptance-a3e190cc54dd) +- [๐Ÿ“ Firmware Testing with Renode and GitHub Actions](https://interrupt.memfault.com/blog/test-automation-renode) +- [๐Ÿ“ Balancing Test Coverage vs. Overhead](https://interrupt.memfault.com/blog/testing-vs-overhead) ##### ๐Ÿ”ถ Unit Testing -- [๐Ÿ”˜ Embedded C/C++ Unit Testing Basics](https://interrupt.memfault.com/blog/unit-testing-basics) -- [๐Ÿ”˜ Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking) -- [๐Ÿ”˜ Unit Testing for C (especially Embedded Software)](http://www.throwtheswitch.org/unity) -- [๐Ÿ”˜ GoogleTest - Google Testing and Mocking Framework](https://github.com/google/googletest) -- [๐Ÿ”˜ Unit Testing Principles, Practices, and Patterns - Vladimir Khorikov](https://www.manning.com/books/unit-testing) +- [๐Ÿ“ Embedded C/C++ Unit Testing Basics](https://interrupt.memfault.com/blog/unit-testing-basics) +- [๐Ÿ“ Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking) +- [๐Ÿ”— Unit Testing for C (especially Embedded Software)](http://www.throwtheswitch.org/unity) +- [๐Ÿ”— GoogleTest - Google Testing and Mocking Framework](https://github.com/google/googletest) +- [๐Ÿ“˜ Unit Testing Principles, Practices, and Patterns - Vladimir Khorikov](https://www.manning.com/books/unit-testing) ##### ๐Ÿ”ถ Integration Testing -- [๐Ÿ”˜ Hardware CI Arena](https://electricui.com/blog/hardware-testing) -- [๐Ÿ”˜ Exclave: Hardware Testing in Mass Production, Made Easier](https://www.bunniestudios.com/blog/?p=5450) -- [๐Ÿ”˜ Regression Testing of Embedded Systems](https://www.parasoft.com/blog/regression-testing-of-embedded-systems/) +- [๐Ÿ“ Hardware CI Arena](https://electricui.com/blog/hardware-testing) +- [๐Ÿ“ Exclave: Hardware Testing in Mass Production, Made Easier](https://www.bunniestudios.com/blog/?p=5450) +- [๐Ÿ“ Regression Testing of Embedded Systems](https://www.parasoft.com/blog/regression-testing-of-embedded-systems/) #### ๐Ÿ”ต CI/CD Pipelines Continuous Integration (CI) and Continuous Delivery (CD) are software development practices that automate the process of building, testing, and deploying software. CI/CD pipelines are designed to ensure that software changes are deployed quickly and reliably. -- [๐Ÿ”˜ Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU) -- [๐Ÿ”˜ Intro to CI/CD Part 2: Getting Started with GitHub Actions | Digi-Key Electronics](https://youtu.be/8pyqbYDYkRs) -- [๐Ÿ”˜ How to Build a Continuous Integration and Delivery Process for Embedded Software](https://medium.com/jumperiot/how-to-build-a-continuous-integration-and-delivery-flow-for-embedded-software-b0b5bf220a2) -- [๐Ÿ”˜ A guide to continuous delivery in embedded development](https://www.embedded.com/a-guide-to-continuous-delivery-in-embedded-development/) -- [๐Ÿ”˜ Continuous Delivery for Embedded Systems โ€ข Mike Long โ€ข GOTO 2015](https://www.youtube.com/watch?v=DcFe6cEvnGQ) -- [๐Ÿ”˜ Continuous Integration & Continuous Delivery for Embedded Systems (Whitepaper)](https://www.parasoft.com/white-paper/ci-cd-for-embedded-systems/) -- [๐Ÿ”˜ What is DevOps in an Embedded Device Company?](https://www.linkedin.com/pulse/what-devops-embedded-device-company-john-macdonald/) -- [๐Ÿ’Ž CI/CD Tutorials (YouTube Playlist)](https://www.youtube.com/playlist?list=PLy7NrYWoggjzSIlwxeBbcgfAdYoxCIrM2) +- [๐ŸŽž๏ธ Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU) +- [๐ŸŽž๏ธ Intro to CI/CD Part 2: Getting Started with GitHub Actions | Digi-Key Electronics](https://youtu.be/8pyqbYDYkRs) +- [๐Ÿ“ How to Build a Continuous Integration and Delivery Process for Embedded Software](https://medium.com/jumperiot/how-to-build-a-continuous-integration-and-delivery-flow-for-embedded-software-b0b5bf220a2) +- [๐Ÿ“ A guide to continuous delivery in embedded development](https://www.embedded.com/a-guide-to-continuous-delivery-in-embedded-development/) +- [๐ŸŽž๏ธ Continuous Delivery for Embedded Systems โ€ข Mike Long โ€ข GOTO 2015](https://www.youtube.com/watch?v=DcFe6cEvnGQ) +- [๐Ÿ“ Continuous Integration & Continuous Delivery for Embedded Systems (Whitepaper)](https://www.parasoft.com/white-paper/ci-cd-for-embedded-systems/) +- [๐Ÿ“ What is DevOps in an Embedded Device Company?](https://www.linkedin.com/pulse/what-devops-embedded-device-company-john-macdonald/) +- [๐ŸŽž๏ธ๐Ÿ’Ž CI/CD Tutorials (YouTube Playlist)](https://www.youtube.com/playlist?list=PLy7NrYWoggjzSIlwxeBbcgfAdYoxCIrM2) #### ๐Ÿ”ต SIL / HIL Testing Software-in-the-loop (SIL) and hardware-in-the-loop (HIL) testing are two crucial techniques used in embedded systems development to validate the functionality and performance of software before it is deployed on real hardware. These testing methods simulate the real-world environment of the embedded system using software models or hardware emulators. -- [๐Ÿ”˜ Hardware-in-Loop and Software-in-Loop Testing](https://roboticsknowledgebase.com/wiki/system-design-development/In-Loop-Testing/) -- [๐Ÿ”˜ Embedded CI/CD with HIL Testing (YouTube Playlist)](https://youtube.com/playlist?list=PL4cGeWgaBTe1uwiqIAc6fwPzPpvgPZI2J) +- [๐Ÿ“ Hardware-in-Loop and Software-in-Loop Testing](https://roboticsknowledgebase.com/wiki/system-design-development/In-Loop-Testing/) +- [๐ŸŽž๏ธ Embedded CI/CD with HIL Testing (YouTube Playlist)](https://youtube.com/playlist?list=PL4cGeWgaBTe1uwiqIAc6fwPzPpvgPZI2J) #### ๐Ÿ”ต Standards & Certifications Embedded systems development is subject to a variety of standards and certifications, which serve as guidelines and benchmarks for ensuring the quality, safety, and reliability of these systems. These standards are often developed and maintained by industry bodies, such as the International Electrotechnical Commission (IEC) and the Society of Automotive Engineers (SAE). -- [๐Ÿ”˜ Intro to Embedded Development: Styles and Standards](https://www.allaboutcircuits.com/technical-articles/embedded-programming-styles-and-standards/) -- [๐Ÿ”˜ Safety Standards and Certifications for Embedded Systems Development](https://www.linkedin.com/pulse/safety-standards-certifications-embedded-systems-development/) -- [๐Ÿ”˜ Microchip University - An Introduction To The ISA/IEC 62443 Standard](https://mu.microchip.com/an-introduction-to-the-isaiec-62443-standard) -- [๐Ÿ”˜ Exploring EMC Basics & Standards](https://www.youtube.com/watch?v=duhBkhlH-WY) +- [๐Ÿ“ Intro to Embedded Development: Styles and Standards](https://www.allaboutcircuits.com/technical-articles/embedded-programming-styles-and-standards/) +- [๐Ÿ“ Safety Standards and Certifications for Embedded Systems Development](https://www.linkedin.com/pulse/safety-standards-certifications-embedded-systems-development/) +- [๐ŸŽž๏ธ Microchip University - An Introduction To The ISA/IEC 62443 Standard](https://mu.microchip.com/an-introduction-to-the-isaiec-62443-standard) +- [๐ŸŽž๏ธ Exploring EMC Basics & Standards](https://www.youtube.com/watch?v=duhBkhlH-WY) ##### ๐Ÿ”ถ Functional Safety -- [๐Ÿ‘ถ Microchip University - Introduction to Functional Safety](https://mu.microchip.com/introduction-to-functional-safety) -- [๐Ÿ”˜ Udemy โ€“ Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/) -- [๐Ÿ”˜ A Guide to MISRA C Coding Standards - MISRA C and MISRA C++](https://www.perforce.com/resources/qac/misra-c-cpp) -- [๐Ÿ”˜ A Firmware Development Standard by Jack Ganssle](http://www.ganssle.com/fsm.htm) -- [๐Ÿ”˜ Safety-critical Embedded systems: How to prepare for software development](https://www.nagarro.com/en/blog/embedded-software-development-safety-critical-systems) -- [๐Ÿ”˜ DO-178C - Software Considerations in Airborne Systems and Equipment Certification](https://en.wikipedia.org/wiki/DO-178C) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - Introduction to Functional Safety](https://mu.microchip.com/introduction-to-functional-safety) +- [๐ŸŽž๏ธ Udemy โ€“ Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/) +- [๐Ÿ“ A Guide to MISRA C Coding Standards - MISRA C and MISRA C++](https://www.perforce.com/resources/qac/misra-c-cpp) +- [๐Ÿ“ A Firmware Development Standard by Jack Ganssle](http://www.ganssle.com/fsm.htm) +- [๐Ÿ“ Safety-critical Embedded systems: How to prepare for software development](https://www.nagarro.com/en/blog/embedded-software-development-safety-critical-systems) +- [๐Ÿ“ DO-178C - Software Considerations in Airborne Systems and Equipment Certification](https://en.wikipedia.org/wiki/DO-178C) _________________ @@ -1243,48 +1248,48 @@ _________________ Security in embedded systems is particularly challenging due to resource constraints and the inherent nature of these devices. Embedded systems typically operate on small, low-power microcontrollers with limited memory and processing power. This makes it difficult to implement the same level of security as traditional computing platforms. Additionally, embedded systems often have limited access to updates and patches, making them more vulnerable to known vulnerabilities. -- [๐Ÿ”˜ Embedded Systems Security and TrustZone](https://embeddedsecurity.io/) +- [๐Ÿ“ Embedded Systems Security and TrustZone](https://embeddedsecurity.io/) #### ๐Ÿ”ต Hardware Hacking Learning hardware hacking helps security professionals understand how embedded systems can be compromised and develop effective defenses against cyberattacks. This knowledge enhances the resilience of embedded devices to attack. -- [๐Ÿ’Ž Practical Hardware Pentesting - Jean-Georges Valle](https://a.co/d/dq4SeNH) -- [๐Ÿ”˜ Hardware Hacking Tutorial (YouTube Playlist)](https://www.youtube.com/playlist?list=PLoFdAHrZtKkhcd9k8ZcR4th8Q8PNOx7iU) -- [๐Ÿ’Ž The Hardware Hacking Handbook: Breaking Embedded Security with Hardware Attacks - Jasper van Woudenberg, Colin O'Flynn](https://a.co/d/gUIytFX) +- [๐Ÿ“˜๐Ÿ’Ž Practical Hardware Pentesting - Jean-Georges Valle](https://a.co/d/dq4SeNH) +- [๐ŸŽž๏ธ Hardware Hacking Tutorial (YouTube Playlist)](https://www.youtube.com/playlist?list=PLoFdAHrZtKkhcd9k8ZcR4th8Q8PNOx7iU) +- [๐Ÿ“˜๐Ÿ’Ž The Hardware Hacking Handbook: Breaking Embedded Security with Hardware Attacks - Jasper van Woudenberg, Colin O'Flynn](https://a.co/d/gUIytFX) #### ๐Ÿ”ต Cryptography -- [๐Ÿ‘ถ Microchip University - Cryptography Primer](https://mu.microchip.com/cryptography-primer) -- [๐Ÿ”˜ Hashing, Hashing Algorithms, and Collisions - Cryptography - Practical TLS](https://youtu.be/HHQ2QP_upGM) -- [๐Ÿ”˜ Data Integrity - How Hashing is used to ensure data isn't modified - HMAC - Cryptography](https://www.youtube.com/watch?v=doN3lzzNEIM) -- [๐Ÿ”˜ Encryption - Symmetric Encryption vs Asymmetric Encryption - Cryptography - Practical TLS](https://www.youtube.com/watch?v=o_g-M7UBqI8) -- [๐Ÿ”˜ Public and Private Keys - Signatures & Key Exchanges - Cryptography - Practical TLS](https://youtu.be/_zyKvPvh808) -- [๐Ÿ”˜ Understanding AES Encryption Mechanics: BMPS](https://youtu.be/OnhtzFJW_4I) -- [๐Ÿ’Ž Understanding Cryptography: A Textbook for Students and Practitioners - Christof Paar, Jan Pelzl](https://link.springer.com/book/10.1007/978-3-642-04101-3) -- [๐Ÿ’Ž Handbook of Applied Cryptography - Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone](https://cacr.uwaterloo.ca/hac/) -- [๐Ÿ”˜ Serious Cryptography: A Practical Introduction to Modern Encryption - Jean-Philippe Aumasson](https://nostarch.com/seriouscrypto) -- [๐Ÿ”˜ MOOC - Security Part2: Basics of cryptography (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnFSFh57UFTZLpy-7lZiwTHh) -- [๐Ÿ”˜ MOOC - Security Part3 : STM32 security features (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnFzux3PHKUEi14ftDn9Cbm7) -- [๐Ÿ”˜ Introduction to encryption for embedded Linux developers](https://sergioprado.blog/introduction-to-encryption-for-embedded-linux-developers/) -- [๐Ÿ”˜ A hands-on approach to symmetric-key encryption](https://sergioprado.blog/a-hands-on-approach-to-symmetric-key-encryption/) -- [๐Ÿ”˜ Asymmetric-Key Encryption and Digital Signatures in Practice](https://sergioprado.blog/asymmetric-key-encryption-and-digital-signatures-in-practice/) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Microchip University - Cryptography Primer](https://mu.microchip.com/cryptography-primer) +- [๐ŸŽž๏ธ Hashing, Hashing Algorithms, and Collisions - Cryptography - Practical TLS](https://youtu.be/HHQ2QP_upGM) +- [๐ŸŽž๏ธ Data Integrity - How Hashing is used to ensure data isn't modified - HMAC - Cryptography](https://www.youtube.com/watch?v=doN3lzzNEIM) +- [๐ŸŽž๏ธ Encryption - Symmetric Encryption vs Asymmetric Encryption - Cryptography - Practical TLS](https://www.youtube.com/watch?v=o_g-M7UBqI8) +- [๐ŸŽž๏ธ Public and Private Keys - Signatures & Key Exchanges - Cryptography - Practical TLS](https://youtu.be/_zyKvPvh808) +- [๐ŸŽž๏ธ Understanding AES Encryption Mechanics: BMPS](https://youtu.be/OnhtzFJW_4I) +- [๐Ÿ“˜๐Ÿ’Ž Understanding Cryptography: A Textbook for Students and Practitioners - Christof Paar, Jan Pelzl](https://link.springer.com/book/10.1007/978-3-642-04101-3) +- [๐Ÿ“˜๐Ÿ’Ž Handbook of Applied Cryptography - Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone](https://cacr.uwaterloo.ca/hac/) +- [๐Ÿ“˜ Serious Cryptography: A Practical Introduction to Modern Encryption - Jean-Philippe Aumasson](https://nostarch.com/seriouscrypto) +- [๐ŸŽž๏ธ MOOC - Security Part2: Basics of cryptography (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnFSFh57UFTZLpy-7lZiwTHh) +- [๐ŸŽž๏ธ MOOC - Security Part3 : STM32 security features (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnFzux3PHKUEi14ftDn9Cbm7) +- [๐Ÿ“ Introduction to encryption for embedded Linux developers](https://sergioprado.blog/introduction-to-encryption-for-embedded-linux-developers/) +- [๐Ÿ“ A hands-on approach to symmetric-key encryption](https://sergioprado.blog/a-hands-on-approach-to-symmetric-key-encryption/) +- [๐Ÿ“ Asymmetric-Key Encryption and Digital Signatures in Practice](https://sergioprado.blog/asymmetric-key-encryption-and-digital-signatures-in-practice/) #### ๐Ÿ”ต Secure Boot & Secure Firmware Update -- [๐Ÿ”˜ Device Firmware Update Cookbook](https://interrupt.memfault.com/blog/device-firmware-update-cookbook) -- [๐Ÿ”˜ Saving bandwidth with delta firmware updates](https://interrupt.memfault.com/blog/ota-delta-updates) -- [๐Ÿ”˜ AVR231: AES Bootloader](https://www.microchip.com/en-us/application-notes/an2462) -- [๐Ÿ”˜ Blinky To Bootloader: Bare Metal Programming Series (YouTube Playlist)](https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ) -- [๐Ÿ”˜ MOOC - Security Part4 : STM32 security in practice (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnF0wt-ZI74SflnsBV4yKzkO) -- [๐Ÿ”˜ MOOC - Security Part5 : How to define your security needs (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnGqh5OmQWw98ztpf9TeczbC) -- [๐Ÿ”˜ MOOC - Security Part6: STM32 security ecosystem, from theory to practice (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnGd7J7fV7tr-4xIBwkNfD--) -- [๐Ÿ”˜ TPM (Trusted Platform Module) - Computerphile](https://www.youtube.com/watch?v=RW2zHvVO09g) -- [๐Ÿ”˜ Securing Embedded Linux Systems with TPM 2.0 - Philip Tricca, Intel](https://www.youtube.com/watch?v=0qu9R7Tlw9o) -- [๐Ÿ”˜ TPM: Basic applications to embedded devices](https://witekio.com/blog/tpm-basic-applications-to-embedded-devices/) -- [๐Ÿ”˜ OTA for Embedded Linux Devices: A practical introduction](https://interrupt.memfault.com/blog/ota-for-embedded-linux-devices) -- [๐Ÿ”˜ Introduction to Embedded Linux Security - part 1](https://sergioprado.blog/introduction-embedded-linux-security-part-1/) -- [๐Ÿ”˜ Introduction to Embedded Linux Security - part 2](https://sergioprado.blog/introduction-embedded-linux-security-part-2/) +- [๐Ÿ“ Device Firmware Update Cookbook](https://interrupt.memfault.com/blog/device-firmware-update-cookbook) +- [๐Ÿ“ Saving bandwidth with delta firmware updates](https://interrupt.memfault.com/blog/ota-delta-updates) +- [๐Ÿ“ AVR231: AES Bootloader](https://www.microchip.com/en-us/application-notes/an2462) +- [๐ŸŽž๏ธ Blinky To Bootloader: Bare Metal Programming Series (YouTube Playlist)](https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ) +- [๐ŸŽž๏ธ MOOC - Security Part4 : STM32 security in practice (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnF0wt-ZI74SflnsBV4yKzkO) +- [๐ŸŽž๏ธ MOOC - Security Part5 : How to define your security needs (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnGqh5OmQWw98ztpf9TeczbC) +- [๐ŸŽž๏ธ MOOC - Security Part6: STM32 security ecosystem, from theory to practice (YouTube Playlist)](https://youtube.com/playlist?list=PLnMKNibPkDnGd7J7fV7tr-4xIBwkNfD--) +- [๐ŸŽž๏ธ TPM (Trusted Platform Module) - Computerphile](https://www.youtube.com/watch?v=RW2zHvVO09g) +- [๐ŸŽž๏ธ Securing Embedded Linux Systems with TPM 2.0 - Philip Tricca, Intel](https://www.youtube.com/watch?v=0qu9R7Tlw9o) +- [๐Ÿ“ TPM: Basic applications to embedded devices](https://witekio.com/blog/tpm-basic-applications-to-embedded-devices/) +- [๐Ÿ“ OTA for Embedded Linux Devices: A practical introduction](https://interrupt.memfault.com/blog/ota-for-embedded-linux-devices) +- [๐Ÿ“ Introduction to Embedded Linux Security - part 1](https://sergioprado.blog/introduction-embedded-linux-security-part-1/) +- [๐Ÿ“ Introduction to Embedded Linux Security - part 2](https://sergioprado.blog/introduction-embedded-linux-security-part-2/) _________________ @@ -1292,10 +1297,10 @@ _________________ Graphical User Interfaces (GUIs) have become an indispensable part of modern embedded systems, offering a user-friendly and intuitive way to interact with devices. Designing effective GUIs for embedded systems requires careful consideration of factors such as resource constraints, user experience, and real-time performance. -- [๐Ÿ”˜ U8glib library for monochrome displays, version 2](https://github.com/olikraus/u8g2) -- [๐Ÿ”˜ LVGL](https://lvgl.io/) -- [๐Ÿ”˜ TouchGFX](https://support.touchgfx.com/4.20/docs/introduction/welcome) -- [๐Ÿ”˜ Introduction to Qt / QML (YouTube Playlist)](https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc) +- [๐Ÿ”— U8glib library for monochrome displays, version 2](https://github.com/olikraus/u8g2) +- [๐Ÿ”— LVGL](https://lvgl.io/) +- [๐Ÿ”— TouchGFX](https://support.touchgfx.com/4.20/docs/introduction/welcome) +- [๐ŸŽž๏ธ Introduction to Qt / QML (YouTube Playlist)](https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc) _________________ @@ -1303,39 +1308,39 @@ _________________ The Internet of Things (IoT) refers to a network of interconnected devices, which gather and exchange data with other devices or with the cloud. Embedded systems are typically the "brains" of IoT devices, managing data collection, processing, and communication tasks. Embedded systems are designed to operate with limited power and resources, making them well-suited for IoT applications. -- [๐Ÿ‘ถ ๐Ÿ’Ž Microchip University - Design Considerations For Your First IoT Project](https://mu.microchip.com/design-considerations-for-your-first-iot-project) +- [๐ŸŽž๏ธ๐Ÿ‘ถ๐Ÿ’Ž Microchip University - Design Considerations For Your First IoT Project](https://mu.microchip.com/design-considerations-for-your-first-iot-project) ### โœณ๏ธ Edge AI Edge AI refers to the ability of devices to perform machine learning tasks on their own, without the need to send data to a central server. This can be done by using small, specialized AI models that are embedded directly into the device. TinyML is a subset of Edge AI that focuses on developing these models for devices with very limited computing power, such as microcontrollers and sensors. -- [๐Ÿ”˜ Udemy โ€“ Getting Started with Embedded AI | Edge AI](https://www.udemy.com/course/getting-started-with-embedded-ai-hands-on-experience/) -- [๐Ÿ”˜ Intro to Edge AI: Machine Learning + IoT โ€“ Maker.io Tutorial | Digi-Key Electronics](https://www.youtube.com/watch?v=Ejld8XZmvwE) +- [๐ŸŽž๏ธ Udemy โ€“ Getting Started with Embedded AI | Edge AI](https://www.udemy.com/course/getting-started-with-embedded-ai-hands-on-experience/) +- [๐ŸŽž๏ธ Intro to Edge AI: Machine Learning + IoT โ€“ Maker.io Tutorial | Digi-Key Electronics](https://www.youtube.com/watch?v=Ejld8XZmvwE) #### ๐Ÿ”ต AI & ML Basics -- [๐Ÿ”˜ A beginner's guide to artificial intelligence and machine learning](https://developer.ibm.com/articles/cc-beginner-guide-machine-learning-ai-cognitive/) -- [๐Ÿ‘ถ Introduction to Machine Learning for Coders!](https://course18.fast.ai/ml) -- [๐Ÿ”˜ Machine Learning Crash Course with TensorFlow APIs - Google](https://developers.google.com/machine-learning/crash-course/) +- [๐Ÿ“ A beginner's guide to artificial intelligence and machine learning](https://developer.ibm.com/articles/cc-beginner-guide-machine-learning-ai-cognitive/) +- [๐Ÿ“๐Ÿ‘ถ Introduction to Machine Learning for Coders!](https://course18.fast.ai/ml) +- [๐Ÿ“ Machine Learning Crash Course with TensorFlow APIs - Google](https://developers.google.com/machine-learning/crash-course/) #### ๐Ÿ”ต TensorFlow Lite -- [๐Ÿ”˜ Getting Started with TensorFlow and Keras โ€“ Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=HCG3hFe1KYY) -- [๐Ÿ”˜ Intro to TensorFlow Lite Part 1: Wake Word Feature Extraction โ€“ Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=0fn7pj7Dutc) -- [๐Ÿ”˜ Intro to TensorFlow Lite Part 2: Speech Recognition Model Training โ€“ Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=yv_WVwr6OkI) +- [๐ŸŽž๏ธ Getting Started with TensorFlow and Keras โ€“ Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=HCG3hFe1KYY) +- [๐ŸŽž๏ธ Intro to TensorFlow Lite Part 1: Wake Word Feature Extraction โ€“ Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=0fn7pj7Dutc) +- [๐ŸŽž๏ธ Intro to TensorFlow Lite Part 2: Speech Recognition Model Training โ€“ Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=yv_WVwr6OkI) #### ๐Ÿ”ต TinyML -- [๐Ÿ‘ถ Intro to TinyML Part 1: Training a Neural Network for Arduino in TensorFlow | Digi-Key Electronics](https://www.youtube.com/watch?v=BzzqYNYOcWc) -- [๐Ÿ‘ถ Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino | Digi-Key Electronics](https://www.youtube.com/watch?v=dU01M61RW8s) -- [๐Ÿ”˜ Coursera - Introduction to Embedded Machine Learning](https://www.coursera.org/learn/introduction-to-embedded-machine-learning) -- [๐Ÿ”˜ TinyML: Getting Started with TensorFlow Lite for Microcontrollers | Digi-Key Electronics](https://youtu.be/gDFWCxrJruQ) -- [๐Ÿ”˜ TinyML: Getting Started with STM32 X-CUBE-AI | Digi-Key Electronics](https://youtu.be/crJcDqIUbP4) -- [๐Ÿ”˜ edX - Fundamentals of TinyML](https://www.edx.org/learn/machine-learning/harvard-university-fundamentals-of-tinyml) -- [๐Ÿ”˜ edX - Applications of TinyML](https://www.edx.org/learn/tinyml/harvard-university-applications-of-tinyml) -- [๐Ÿ”˜ edX - Deploying TinyML](https://www.edx.org/learn/tinyml/harvard-university-deploying-tinyml) -- [๐Ÿ”˜ edX - MLOps for Scaling TinyML](https://www.edx.org/learn/computer-programming/harvard-university-mlops-for-scaling-tinyml) -- [๐Ÿ”˜ TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers - Pete Warden, Daniel Situnayake](https://tinymlbook.com/) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Intro to TinyML Part 1: Training a Neural Network for Arduino in TensorFlow | Digi-Key Electronics](https://www.youtube.com/watch?v=BzzqYNYOcWc) +- [๐ŸŽž๏ธ๐Ÿ‘ถ Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino | Digi-Key Electronics](https://www.youtube.com/watch?v=dU01M61RW8s) +- [๐ŸŽž๏ธ Coursera - Introduction to Embedded Machine Learning](https://www.coursera.org/learn/introduction-to-embedded-machine-learning) +- [๐ŸŽž๏ธ TinyML: Getting Started with TensorFlow Lite for Microcontrollers | Digi-Key Electronics](https://youtu.be/gDFWCxrJruQ) +- [๐ŸŽž๏ธ TinyML: Getting Started with STM32 X-CUBE-AI | Digi-Key Electronics](https://youtu.be/crJcDqIUbP4) +- [๐ŸŽž๏ธ edX - Fundamentals of TinyML](https://www.edx.org/learn/machine-learning/harvard-university-fundamentals-of-tinyml) +- [๐ŸŽž๏ธ edX - Applications of TinyML](https://www.edx.org/learn/tinyml/harvard-university-applications-of-tinyml) +- [๐ŸŽž๏ธ edX - Deploying TinyML](https://www.edx.org/learn/tinyml/harvard-university-deploying-tinyml) +- [๐ŸŽž๏ธ edX - MLOps for Scaling TinyML](https://www.edx.org/learn/computer-programming/harvard-university-mlops-for-scaling-tinyml) +- [๐Ÿ“˜ TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers - Pete Warden, Daniel Situnayake](https://tinymlbook.com/) _________________ @@ -1343,10 +1348,10 @@ _________________ AUTOSAR, or AUTomotive Open System ARchitecture, is a global industry standard for automotive software development. It is a software architecture that provides a standardized platform for developing and integrating software components in vehicle electronic control units (ECUs). This allows different ECUs from different manufacturers to communicate and work together seamlessly. -- [๐Ÿ”˜ AUTOSAR Standards](https://www.autosar.org/standards) -- [๐Ÿ”˜ AUTOSAR Basics | AUTOSAR Tutorial | Architecture | Automotive](https://www.youtube.com/watch?v=7b5BY1IAfwY) -- [๐Ÿ”˜ Introduction to AUTOSAR](https://www.youtube.com/watch?v=NfZI8wvgZPo) -- [๐Ÿ”˜ Udemy - Autosar Architecture (Learn from Scratch with Demo)](https://www.udemy.com/course/autosar-architecture/) +- [๐Ÿ”— AUTOSAR Standards](https://www.autosar.org/standards) +- [๐ŸŽž๏ธ AUTOSAR Basics | AUTOSAR Tutorial | Architecture | Automotive](https://www.youtube.com/watch?v=7b5BY1IAfwY) +- [๐ŸŽž๏ธ Introduction to AUTOSAR](https://www.youtube.com/watch?v=NfZI8wvgZPo) +- [๐ŸŽž๏ธ Udemy - Autosar Architecture (Learn from Scratch with Demo)](https://www.udemy.com/course/autosar-architecture/) ## History