Compare commits

...
Author SHA1 Message Date
Meysam Parvizi 97d0dfb407 Minor changes 2023-08-12 13:31:59 +03:30
Meysam Parvizi c16eb7945f Update README.md 2023-08-12 13:11:26 +03:30
Meysam Parvizi 5c9b3ca37b Update README.md 2023-08-12 12:13:35 +03:30
Meysam Parvizi bb125e66ff Update README.md
Add RS485 and RS232
2023-08-12 01:42:12 +03:30
Meysam Parvizi c975a2579c Update README.md 2023-08-12 01:36:55 +03:30
Meysam Parvizi 33d363bf0b Update README.md
Add resources for Cryptography
2023-08-12 01:26:52 +03:30
Meysam Parvizi b9570fdbf3 Update README.md
Add TPM
2023-08-11 15:29:27 +03:30
Meysam Parvizi fe25902b4a Update README.md
Add Networking Fundamentals
2023-08-11 15:12:52 +03:30
Meysam Parvizi bd04036cda Update README.md 2023-08-11 13:24:57 +03:30
Meysam Parvizi 79b6c2427c Update README.md 2023-08-11 12:55:44 +03:30
Meysam Parvizi 98137ec87c Update README.md 2023-08-11 12:40:07 +03:30
Meysam Parvizi ea4ed18fbf Update README.md
Add FreeRTOS vs Linux for Embedded Systems
2023-08-11 12:39:22 +03:30
Meysam Parvizi 83143802c9 Update README.md
Add horizontal rules
2023-08-11 12:34:32 +03:30
Meysam Parvizi 9e58c68f92 Update README.md
Add resources for Integration Testing
2023-08-11 12:23:58 +03:30
Meysam Parvizi 7f0d0bb032 Update README.md
Add resources for Cellular technologies
2023-08-11 12:17:27 +03:30
Meysam Parvizi 9ae858a12a Update README.md 2023-08-11 03:25:21 +03:30
Meysam Parvizi 9855357fd2 Update README.md 2023-08-10 23:33:41 +03:30
Meysam Parvizi 5a61f48526 Update README.md
Add `Interrupt Blog by Memfault`
2023-08-10 18:46:54 +03:30
Meysam Parvizi b29ae26ce8 Update README.md
Add `SDRAM in STM32 || MT48LC4`
2023-08-10 12:19:43 +03:30
Meysam Parvizi 60b95f9542 Update README.md
Add `PCB Design Skill Tree`
2023-08-10 12:18:09 +03:30
Meysam Parvizi 3f5a71258a Update README.md
Add `Embedded Systems Skill Tree`
2023-08-10 12:16:44 +03:30
Meysam Parvizi 205e637110 Update README.md
Add Practical System Programming with C
2023-08-10 02:47:23 +03:30
Meysam Parvizi 8af3b6dcbc Update README.md 2023-08-10 01:48:45 +03:30
Meysam Parvizi e20d634ffa Update README.md
Add SafeRTOS
2023-08-10 01:29:49 +03:30
Meysam Parvizi c89cf2a40f Update README.md 2023-08-10 01:23:45 +03:30
Meysam Parvizi bba97a7664 Update README.md
Add resources for protocols
2023-08-10 01:23:04 +03:30
Meysam Parvizi f77f545118 Update README.md
Add 'The Future of Programming: Rust'
2023-08-09 20:22:42 +03:30
Meysam Parvizi e1c3c01126 Update README.md
Add Hardware Hacking
2023-08-09 20:19:04 +03:30
Meysam Parvizi 0ba36a7505 Update README.md
Add definition of Embedded System
2023-08-09 19:40:04 +03:30
Meysam Parvizi 88fdfe6379 Update README.md 2023-08-09 17:12:31 +03:30
Meysam Parvizi 1147c50066 Update README.md 2023-08-09 17:07:35 +03:30
Meysam Parvizi 2348b365a8 Update README.md 2023-08-09 16:25:09 +03:30
Meysam Parvizi 3f456aea92 Update README.md
Add resources for Multitasking and Parallel Processing
2023-08-09 12:40:00 +03:30
Meysam Parvizi 52b9f41521 Update README.md 2023-08-09 11:05:30 +03:30
Meysam Parvizi edcd4a5342 Update README.md 2023-08-09 04:16:08 +03:30
Meysam Parvizi 2ea0b0aba7 Update README.md 2023-08-09 01:21:44 +03:30
Meysam Parvizi e121a8e160 Update README.md 2023-08-09 01:19:33 +03:30
Meysam Parvizi 0b4f7483d9 Minor changes 2023-08-08 22:33:36 +03:30
Meysam Parvizi ecf6afad3a Add some wireless protocols
Add μC/OS
2023-08-08 22:13:47 +03:30
Meysam Parvizi c50c0579b1 Update README.md 2023-08-08 21:02:40 +03:30
Meysam Parvizi c2dbf403e5 Update README.md
Add μC/OS / Micriμm OS
2023-08-08 20:49:58 +03:30
Meysam Parvizi cf4c1f4384 Update README.md 2023-08-08 12:40:43 +03:30
Meysam Parvizi 4a1dfa5058 Update README.md 2023-08-08 11:58:08 +03:30
Meysam Parvizi 65ba823ff1 Add SDLC Models 2023-08-08 11:47:16 +03:30
Meysam Parvizi 2e6c8bd366 Update README.md 2023-08-08 01:59:23 +03:30
Meysam Parvizi c5bc921acf Update README.md 2023-08-08 01:33:13 +03:30
Meysam Parvizi 639a5f9087 Update README.md 2023-08-08 01:22:38 +03:30
Meysam Parvizi 2c7a23f7c0 Update README.md 2023-08-07 19:17:06 +03:30
Meysam Parvizi 087f30af52 Update README.md 2023-08-07 16:58:53 +03:30
Meysam Parvizi 1b9968e8cc Update README.md
Add Udemy prefix to courses
2023-08-07 16:48:12 +03:30
Meysam Parvizi 7e9e42965b Update README.md 2023-08-07 15:15:50 +03:30
Meysam Parvizi 21d63623ff Update README.md 2023-08-07 15:08:34 +03:30
Meysam Parvizi 6bb25ba5c3 Update README.md 2023-08-07 02:55:28 +03:30
Meysam Parvizi 9ab7761c89 Update README.md 2023-08-07 02:23:37 +03:30
Meysam Parvizi 6f7e998db6 Update README.md 2023-08-07 02:04:05 +03:30
Meysam Parvizi 3227c98762 Update README.md 2023-08-06 19:48:05 +03:30
Meysam Parvizi 2d6523dd8f Update README.md
Add some books
2023-08-06 19:32:18 +03:30
Meysam Parvizi 9b45029902 Update README.md
Add SOFT SKILLS
2023-08-06 18:45:57 +03:30
Meysam Parvizi 812195e7c5 Update README.md 2023-08-06 14:28:24 +03:30
Meysam Parvizi 7aa5ee7c9f Update README.md 2023-08-06 14:27:11 +03:30
2 changed files with 249 additions and 43 deletions
Binary file not shown.
+249 -43
View File
@@ -4,6 +4,12 @@ This roadmap is designed to assist beginners aspiring to build a career as an Em
Becoming an embedded engineer requires a broad understanding of both software and hardware. If you are starting on this journey, you must be highly motivated and passionate to pursue this path. The field of embedded systems demands a solid understanding of hardware functionality. But, as the well-known saying goes, "Hardware is hard!". So, patience and passion are the essential qualities that will help you overcome the various challenges encountered along this journey.
## What is an Embedded System?
An [***embedded system***](https://www.analog.com/en/design-center/glossary/embedded-system.html) is a system in which the **computer** (generally a microcontroller or microprocessor) is included as an integral part of the system.
Often, the computer is relatively **invisible to the user**, without obvious applications, files, or operating systems. Examples of products with invisible embedded systems are the controller that runs a microwave oven or the engine control system of a modern automobile.
## Roadmap
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/latest/download/Embedded-Engineering-Roadmap.png)
@@ -16,28 +22,35 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [Searching is Your Super Power!](https://www.google.com)
#### 🎥 Courses and Youtube Channels
#### 🎥 Courses and YouTube Contents
- [Fastbit Embedded Brain Academy](https://fastbitlab.com/)
- [Quantum Leaps, LLC YouTube Channel](https://www.youtube.com/@StateMachineCOM)
- [Modern Embedded Systems Programming Course](https://youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM)
- [DigiKey YouTube Channel](https://www.youtube.com/@digikey)
- [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)
- [Quantum Leaps, LLC (YouTube Channel)](https://www.youtube.com/@StateMachineCOM)
- [DigiKey (YouTube Channel](https://www.youtube.com/@digikey)
- [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)
- [Electronic Basics - GreatScott! (YouTube Playlist)](https://youtube.com/playlist?list=PLAROrg3NQn7cyu01HpOv5BWo217XWBZu0)
- [Embedded Systems - Jacob Sorber (YouTube Playlist)](https://www.youtube.com/playlist?list=PL9IEJIKnBJjEcPAz6fss-Hx0TLytCOMVC)
#### 📚 Books
- [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)
- [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)
#### 🤡 Simulation
- [Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/)
- [QEMU](https://www.qemu.org/)
- [QEMU - open-source freeware for emulating hardware and devices](https://www.qemu.org/)
#### 🕹️ Arduino
If you do not have any background in programming embedded systems, Arduino boards and libraries are the best choice for you to start and learn the basics. Just keep in mind that most of the Arduino libraries are developed only for learning purposes and are not are not optimized to be used in industry. If you want to become a professional embedded developer, you should have the ability to utilize industry-compliant APIs and frameworks provided and qualified by microcontroller vendors such as STM32Cube for STM32 microcontrollers or ESP-IDF for Espressif microcontrollers.
If you do not have any background in programming embedded systems, Arduino boards and libraries are the best choice for you to start and learn the basics. Just keep in mind that most of the Arduino libraries are developed only for learning purposes and are not are not optimized to be used in industry. Additionally, the Arduino 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 must be able to effectively use industry-standard APIs and frameworks 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](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](https://www.youtube.com/playlist?list=PLEBQazB0HUyQd6Fsf5NQ75M9llbi1_j_8)
#### 🐜 PlatformIO
@@ -48,23 +61,41 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### 👨‍🏫 Educational Websites
- [DeepBlueMbedded](https://deepbluembedded.com/)
- [Interrupt Blog by Memfault](https://interrupt.memfault.com/blog/)
- [Microchip University](https://mu.microchip.com/)
- [SparkFun Learn: Learn at SparkFun Electronics](https://learn.sparkfun.com/)
- [Adafruit Learning System](https://learn.adafruit.com/)
- [Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
- [ControllersTech](https://controllerstech.com/)
#### 🗺️ Other Useful Roadmaps
- [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)
#### ⚒️ Projects
- [STM32 Firmware](https://youtube.com/playlist?list=PLXSyc11qLa1a4Tqbz228dPZfMrs-KRpzA)
- [STM32 : Internet Of Things with 4G LTE Modem - Hardware](https://www.udemy.com/course/stm32-internet-of-things-with-4g-lte-modem-hardware/)
- [Udemy – STM32 : Internet Of Things with 4G LTE Modem - Hardware](https://www.udemy.com/course/stm32-internet-of-things-with-4g-lte-modem-hardware/)
> **Note:** It is not necessary to read or watch all of the following materials,
> but it is important to study enough to have at least a basic understanding of each topic.
> Of course, the more you study and practice, the deeper and wider your knowledge will become.
> This will ultimately improve your skills as an engineer.
>
> Some the resources mentioned here will only be used as references. Refer to them only when you need them.
#### 😈 Hardware Hacking
- [Hardware Hacking Tutorial](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)
_________________
**Note:** It is not necessary to read or watch all of the following materials, but it is important to study enough to have a basic understanding of each topic. Of course, the more you study and practice, the greater your knowledge will become, ultimately enhancing your abilities as an engineer.
Some of the resources mentioned here will just be used as references. Refer to them only when you need them.
_________________
### Soft Skills
- [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)
_________________
### Electronics Fundamentals
@@ -83,6 +114,7 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### Electronic Components
- [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 Circuits & Logic Design
@@ -96,6 +128,8 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI)
- [Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/)
_________________
### Using Test Equipment
#### Multimeter
@@ -112,6 +146,9 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [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)
_________________
### Prototyping Skills
@@ -128,6 +165,8 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### PCB Design
- [Create PCBs for Rapid Prototyping](https://www.youtube.com/playlist?list=PLEBQazB0HUyRVK1RpHIjyjuTxn5srz6XM)
- [How to Make a Raspberry Pi Compute Module 4 Carrier Board](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](https://www.youtube.com/watch?v=vaCVh2SAZY4&list=PLEBQazB0HUyR24ckSZ5u05TZHV9khgA1O)
@@ -145,14 +184,30 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [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)
_________________
### FPGA Design
- [FPGA vs. Microcontroller: How to choose the right one for your project](https://www.youtube.com/watch?v=jblpHUCPQYs)
- [Introduction to FPGA](https://youtube.com/playlist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb)
- [FPGA Fundamentals](https://nandland.com/fpga-101/)
- [FPGA Embedded Design, Part 1 - Verilog](https://www.udemy.com/course/fpga-embedded-design-verilog/)
- [FPGA Embedded Design, Part 2 - Basic FPGA Training](https://www.udemy.com/course/fpga-embedded-design-fpgas/)
- [FPGA Embedded Design, Part 3 - EDA Tools](https://www.udemy.com/course/fpga-embedded-design-eda-tools/)
- [FPGA Embedded Design, Part 4 - Microprocessor Design](https://www.udemy.com/course/fpga-embedded-design-cpu/)
- [Udemy – FPGA Embedded Design, Part 1 - Verilog](https://www.udemy.com/course/fpga-embedded-design-verilog/)
- [Udemy – FPGA Embedded Design, Part 2 - Basic FPGA Training](https://www.udemy.com/course/fpga-embedded-design-fpgas/)
- [Udemy – FPGA Embedded Design, Part 3 - EDA Tools](https://www.udemy.com/course/fpga-embedded-design-eda-tools/)
- [Udemy – FPGA Embedded Design, Part 4 - Microprocessor Design](https://www.udemy.com/course/fpga-embedded-design-cpu/)
_________________
### Software Development Life Cycle (SDLC) Models
- [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/)
- [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)
- [What Is the V-Model in Software Development?](https://builtin.com/software-engineering-perspectives/v-model)
_________________
### Programming Fundamentals
@@ -160,12 +215,13 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [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
- [Embedded Systems State Machines & Data Structures](https://www.udemy.com/course/embedded-systems-state-machines-data-structures-like-a-pro/)
- [Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https://www.oreilly.com/library/view/design-patterns-for/9781856177078/)
#### State Machines / UML
@@ -174,16 +230,21 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [Event-Driven Programming](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/)
#### Memory Allocation
#### Memory Management
- [Understanding the C runtime memory model](https://www.youtube.com/watch?v=3F3lp_F2YpQ)
- [Dynamic Memory Allocation | C Programming Tutorial](https://www.youtube.com/watch?v=R0qIYWo8igs)
- [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/)
_________________
### Programming Languages
#### C
- [W3Schools C Tutorial](https://www.w3schools.com/c/index.php)
- [C Programming for Beginners | Full Course](https://www.youtube.com/watch?v=ssJY5MDLjlo)
- [C Programming Tutorials](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)
@@ -192,10 +253,10 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y)
- [C++ YouTube Playlist by The Cherno](https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb)
- [C++ Concurrency in Action - Anthony Williams ](https://www.manning.com/books/c-plus-plus-concurrency-in-action)
#### Assembly
- [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)
#### Python
@@ -208,13 +269,15 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### Rust
- [The Embedded Rust Book](https://docs.rust-embedded.org/book/)
- [The Future of Programming: Rust](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)
_________________
### Build System
#### GCC
#### Makefile
#### GCC & Make
- [GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html)
@@ -222,7 +285,7 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [How to CMake Good](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s)
#### Bash Script
#### Bash Scripting
- [Bash scripting cheatsheet](https://devhints.io/bash)
- [Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4)
@@ -231,6 +294,8 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [Introduction to Docker for the Embedded Developer](https://www.youtube.com/watch?v=Fz7ou-VBk-w)
_________________
### Version Control
#### Git
@@ -242,14 +307,19 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [Apache® Subversion®](https://subversion.apache.org/)
_________________
### Microcontrollers
- [Make: AVR Programming - Elliot Williams](https://www.oreilly.com/library/view/make-avr-programming/9781449356484/)
- [Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32)
- [Mastering STM32 - Carmine Noviello](https://leanpub.com/mastering-stm32-2nd)
- [Getting Started with STM32 and Nucleo](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv)
- [Microcontroller Embedded C Programming: Absolute Beginners](https://www.udemy.com/course/microcontroller-embedded-c-programming/)
- [Embedded Systems STM32 Low-Layer APIs(LL) Driver Development](https://www.udemy.com/course/embedded-systems-stm32-low-level-ll-driver-development/)
- [Embedded Systems STM32 HAL APIs Driver Development](https://www.udemy.com/course/embedded-systems-stm32-hal-apis-driver-development/)
- [Bare Metal Embedded Programming: Theory and Practice Using STM32](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)
- [Intro to Raspberry Pi Pico and RP2040](https://www.youtube.com/playlist?list=PLEBQazB0HUyQO6rJxKr2umPCgmfAU-cqR)
- [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/)
#### GPIO
@@ -298,7 +368,7 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### Bootloader
- [How to Create a Super Simple Bootloader](https://www.youtube.com/watch?v=OkUQ3iMmiYQ&list=PLnMKNibPkDnEb1sphpdFJ3bR9dNy7S6mO)
- [STM32Fx Microcontroller Custom Bootloader Development](https://www.udemy.com/course/stm32f4-arm-cortex-mx-custom-bootloader-development/)
- [Udemy – STM32Fx Microcontroller Custom Bootloader Development](https://www.udemy.com/course/stm32f4-arm-cortex-mx-custom-bootloader-development/)
#### Power Management
@@ -312,12 +382,16 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### Functional Safety
- [Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/)
- [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)
### Interfaces & Protocols
_________________
### Interfaces, Protocols & Communication Technologies
#### Common
- [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
@@ -326,25 +400,72 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [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)
- [STM32 I2C SLAVE](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)
##### 1-Wire
- [1-Wire® Technology Overview](https://www.youtube.com/watch?v=CjH-OztKe00)
#### I2S
- [Building a Digital Music Player with I2S?! What is I2S! EB#45](https://www.youtube.com/watch?v=qNLvoSQCx60)
#### Wireless
- [Bluetooth Low Energy Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/)
- [What is Thread? Low-power IoT Networking for Smart Home Devices | Digi-Key Electronics](https://youtu.be/5CauESYB9-A)
- [What is Matter? Unifying IoT Devices for the Smart Home | Digi-Key Electronics](https://youtu.be/vJIEfih9bl0)
#### Industrial
##### 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](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)
##### 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/)
#### High-Speed
##### Ethernet
- [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)
##### USB
- [Training - USB 101 - Introduction to USB](https://www.youtube.com/watch?v=5S6ZPmtPzRA)
- [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](https://www.youtube.com/playlist?list=PLnMKNibPkDnFFRBVD206EfnnHhQZI4Hxa)
#### Automotive
##### CAN
- [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)
@@ -352,24 +473,52 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### Network
- [Networking Fundamentals](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](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)
#### Cellular
##### GSM / LTE
- [STM32 : Internet Of Things With 4G LTE Modem](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/)
_________________
### Memories
- [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)
#### NOR / NAND Flash
- [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)
#### EEPROM
- [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)
_________________
### Sensors & Actuators
- [Getting Started With STM32 and Nucleo Part 2: How to Use I2C to Read Temperature Sensor TMP102](https://www.youtube.com/watch?v=isOekyygpR8)
@@ -377,18 +526,30 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [Interface MPU6050/GY-521 with STM32 || LCD 20x4 || CubeMx || HAL || SW4STM](https://www.youtube.com/watch?v=xxphp9wDnHA)
- [DC Motor Speed Controller PWM With Potentiometer Using STM32](https://www.youtube.com/watch?v=8QpegVuV_AQ)
_________________
### Operating Systems
#### Operating System Fundamentals
- [Operating Systems: Three Easy Pieces - Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau](https://pages.cs.wisc.edu/~remzi/OSTEP/)
#### Multitasking and Parallel Processing
- [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)](https://youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG)
- [C++ Concurrency in Action - Anthony Williams](https://www.manning.com/books/c-plus-plus-concurrency-in-action)
#### Embedded Linux
- [FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/)
- [Introduction to Embedded Linux](https://youtube.com/playlist?list=PLEBQazB0HUyTpoJoZecRK6PpDG31Y7RPB)
##### Linux Kernel
- [Practical System Programming with C: Pragmatic Example Applications in Linux and Unix-Based Operating Systems - Sri Manikanta Palakollu](https://link.springer.com/book/10.1007/978-1-4842-6321-1)
- [The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/)
##### Linux Device Drivers
@@ -408,16 +569,18 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [Introduction to Embedded Linux Part 2 - Yocto Project | Digi-Key Electronics](https://www.youtube.com/watch?v=2-PwskQrZac&t=7s)
- [Yocto Project Tutorial Series (Basic to Advance)](https://www.youtube.com/playlist?list=PLwqS94HTEwpQmgL1UsSwNk_2tQdzq3eVJ)
- [Embedded Linux using Yocto](https://www.udemy.com/course/embedded-linux-using-yocto/)
- [Udemy – Embedded Linux using Yocto](https://www.udemy.com/course/embedded-linux-using-yocto/)
##### Qt
- [Qt Documentation](https://doc.qt.io/)
- [Introduction to Qt / QML](https://www.youtube.com/playlist?list=PL6CJYn40gN6hUXoYdyn4DHUTXfcVDJcfB)
- [Multi-Threading and IPC with Qt 5 C++](https://www.udemy.com/course/multi-threading-and-ipc-with-qt-c-plus-plus/)
- [Udemy – Multi-Threading and IPC with Qt 5 C++](https://www.udemy.com/course/multi-threading-and-ipc-with-qt-c-plus-plus/)
#### Real-Time OS
- [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](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs)
- [Beyond the RTOS](https://www.youtube.com/playlist?list=PLPW8O6W-1chytjkg63-tM7MI0BvGxxPIP)
@@ -425,17 +588,29 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [FreeRTOS - Market leading RTOS](https://www.freertos.org)
- [Introduction to RTOS](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)
- [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)
- [SAFE**RTOS** - Safety Critical Real-Time OS](https://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.html)
##### Zephyr
- [Zephyr® Project](https://www.zephyrproject.org/)
- [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](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](https://micrium.atlassian.net/wiki/spaces/osiidoc/overview)
##### NuttX
- [NuttX - The Apache Software Foundation!](https://nuttx.apache.org/)
- [NuttX - The Apache Software Foundation](https://nuttx.apache.org/)
- [Getting Started to NuttX](https://www.youtube.com/playlist?list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8)
##### RT-Thread
@@ -443,6 +618,10 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [RT-Thread | An Open Source Embedded Real-time Operating System](https://www.rt-thread.io/)
- [RT-Thread Beginners Guide](https://youtube.com/playlist?list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo)
##### Mbed OS
- [Mbed OS](https://os.mbed.com/mbed-os/)
##### QNX
- [BlackBerry QNX: Embedded OS, Support, and Services](https://blackberry.qnx.com/en)
@@ -451,6 +630,8 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [VxWorks | Industry Leading RTOS for Embedded Systems](https://www.windriver.com/products/vxworks)
_________________
### Digital Signal Processing
#### DSP Fundamentals & Filter Design
@@ -458,7 +639,7 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [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](https://youtube.com/playlist?list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et)
- [Digital Signal Processing (DSP) From Ground Up in C](https://www.udemy.com/course/digital-signal-processing-dsp-from-ground-uptm-in-c/)
- [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)
- [Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis](https://a.co/d/75P5PiE)
@@ -484,45 +665,56 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [MATLAB Tutorials: Getting Started with MATLAB](https://youtube.com/playlist?list=PL7CAABC40B2825C8B)
- [Getting Started with Simulink](https://youtube.com/playlist?list=PL484BA2AD3AE4C2D0)
- [MATLAB/SIMULINK Bible|Go From Zero to Hero!](https://www.udemy.com/course/matlabsimulink-biblego-from-zero-to-hero/)
- [Udemy – MATLAB/SIMULINK Bible|Go From Zero to Hero!](https://www.udemy.com/course/matlabsimulink-biblego-from-zero-to-hero/)
_________________
### Debugging
#### JTAG / SWD
- [everyone needs to stop using print debugging (do THIS instead)](https://www.youtube.com/watch?v=3T3ZDquDDVg)
- [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
- [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)
#### 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)
_________________
### Testing
- [Test Driven Development for Embedded C - James Grenning](https://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X)
- [Intro to CI/CD](https://youtu.be/1nxGcfIm-TU)
#### Unit Testing
- [Unit Testing for C (especially Embedded Software)](http://www.throwtheswitch.org/unity)
- [Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking)
- [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)
- [https://www.bunniestudios.com/blog/?p=5450](https://www.bunniestudios.com/blog/?p=5450)
#### SIL / HIL Testing
- [Embedded CI/CD with HIL Testing](https://youtube.com/playlist?list=PL4cGeWgaBTe1uwiqIAc6fwPzPpvgPZI2J)
### Embedded AI
_________________
- [Intro to Edge AI: Machine Learning + IoT – Maker.io Tutorial | Digi-Key Electronics](https://www.youtube.com/watch?v=Ejld8XZmvwE)
### Embedded AI
#### AI/ML Basics
- [Getting Started with Embedded AI | Edge AI](https://www.udemy.com/course/getting-started-with-embedded-ai-hands-on-experience/)
- [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)
#### TensorFlow
@@ -534,11 +726,21 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
- [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)
- [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)
_________________
### Embedded Security
#### Cryptography
- [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)
- [Cryptography and Network Security: Principles and Practice - William Stallings](https://www.pearson.com/en-us/subject-catalog/p/cryptography-and-network-security-principles-and-practice/P200000003477/9780135764213)
- [Serious Cryptography: A Practical Introduction to Modern Encryption - Jean-Philippe Aumasson](https://nostarch.com/seriouscrypto)
- [MOOC - Security Part2: Basics of cryptography](https://youtube.com/playlist?list=PLnMKNibPkDnFSFh57UFTZLpy-7lZiwTHh)
@@ -546,9 +748,13 @@ PlatformIO is a cross-platform, cross-architecture, multiple framework, professi
#### Secure Boot & Secure Firmware Update
- [Blinky To Bootloader: Bare Metal Programming Series](https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ)
- [MOOC - Security Part4 : STM32 security in practice](https://youtube.com/playlist?list=PLnMKNibPkDnF0wt-ZI74SflnsBV4yKzkO)
- [MOOC - Security Part5 : How to define your security needs](https://youtube.com/playlist?list=PLnMKNibPkDnGqh5OmQWw98ztpf9TeczbC)
- [MOOC - Security Part6: STM32 security ecosystem, from theory to practice](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/)
## History
@@ -569,6 +775,6 @@ Special thanks to my friends in the community of Iranian Embedded Engineers in T
## Contribution
If you think that this map can be improved in anyway, please start an issue or pull request. I’ll be maintaining and updating this repository frequently.
If you think that this roadmap can be improved in anyway or you know some good learning resources that can be added here, please start an issue or a pull request. I’ll be maintaining and updating this repository frequently.
The source file is created using [Microsoft Visio](https://office.com/visio) in `.vsdx` format and included in this repository for your contributions. If you do not have Microsoft Visio or you want to use free software, you can use [draw.io](https://draw.io) which can import and export `.vsdx` files.