mirror of
https://github.com/m3y54m/Embedded-Engineering-Roadmap.git
synced 2026-09-27 17:38:11 +03:00
447 lines
21 KiB
Markdown
447 lines
21 KiB
Markdown
# Embedded Systems Engineering Roadmap
|
||
|
||
This roadmap is designed to assist beginners aspiring to build a career as an Embedded Engineer / Developer. To provide comprehensive guidance, I have carefully selected the topics based on current open job requirements and organized them according to my personal experience.
|
||
|
||
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.
|
||
|
||
## Roadmap
|
||
|
||

|
||
|
||
## Learning Resources
|
||
|
||
### ⭐️ Featured Material
|
||
|
||
#### 🔎 Google
|
||
|
||
- [Searching is Your Super Power!](https://www.google.com)
|
||
|
||
#### 🎥 Courses and Youtube Channels
|
||
|
||
- [Fastbit Embedded Brain Academy](https://fastbitlab.com/)
|
||
- [DigiKey YouTube Channel](https://www.youtube.com/@digikey)
|
||
- [Ben Eater YouTube Channel](https://www.youtube.com/@BenEater)
|
||
- [Phil’s Lab YouTube Channel](https://www.youtube.com/@PhilsLab)
|
||
|
||
#### 🤡 Simulation
|
||
|
||
- [Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/)
|
||
|
||
#### 🕹️ Arduino
|
||
|
||
- [Arduino Language Reference](https://www.arduino.cc/reference/en/)
|
||
|
||
#### 🏭 STM32
|
||
|
||
- [Getting Started with STM32 and Nucleo](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv)
|
||
|
||
#### 👨🏫 Educational Websites
|
||
|
||
- [ControllersTech](https://controllerstech.com/)
|
||
- [SparkFun Learn: Learn at SparkFun Electronics](https://learn.sparkfun.com/)
|
||
- [Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
|
||
|
||
#### ⚒️ Projects
|
||
|
||
- [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.
|
||
|
||
### Electronics Fundamentals
|
||
|
||
#### Basic Math & Calculus
|
||
|
||
- [Khan Academy - Calculus 1](https://www.khanacademy.org/math/calculus-1)
|
||
- [Calculus - Robert T Smith, Roland Minton](https://www.mheducation.com/highered/product/calculus-smith-minton/M9780073383118.html)
|
||
|
||
#### Electrical Circuits Basics
|
||
#### Electronic Components
|
||
|
||
- [#1099 How I learned electronics](https://youtu.be/Bgrubw6B_us)
|
||
- [Lessons in Electric Circuits](https://www.allaboutcircuits.com/textbook/)
|
||
- [Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku](https://www.amazon.com/dp/1260226409?ref_=cm_sw_r_cp_ud_dp_Q11YHXNY2BK530RQZC4S)
|
||
- [Grob’s Basic Electronics - Mitchel E. Schultz](https://a.co/d/g1g73HV)
|
||
- [Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R)
|
||
- [Encyclopedia of Electronic Components - Charles Platt](https://a.co/d/83cSiU7)
|
||
- [The Art of Electronics - Paul Horowitz, Winfield Hill](https://artofelectronics.net/)
|
||
|
||
#### Digital Circuits & Logic Design
|
||
#### Computer Architecture
|
||
|
||
- [Build an 8-bit computer from scratch](https://eater.net/8bit/)
|
||
- [Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://github.com/AbderrhmanAbdellatif/ComputerOrganization/blob/master/%5BThe%20Morgan%20Kaufmann%20Series%20in%20Computer%20Architecture%20and%20Design%5D%20David%20A.%20Patterson%2C%20John%20L.%20Hennessy%20-%20Computer%20Organization%20and%20Design_%20The%20Hardware%20Software%20Interface_%20ARM%20Edition%20(2016%2C%20Morgan%20Kaufmann).pdf)
|
||
- [Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI)
|
||
- [Digital Design - Morris Mano](https://www.portcity.edu.bd/files/636444791235373856_Digitallogicdesign.pdf)
|
||
- [Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/)
|
||
|
||
### Using Test Equipment
|
||
|
||
#### 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)
|
||
|
||
#### Logic Analyzer
|
||
|
||
- [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)
|
||
|
||
### Prototyping Skills
|
||
|
||
#### PCB Design
|
||
|
||
- [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)
|
||
- [Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy)
|
||
- [Microcontroller-Based Hardware Design With Altium Designer](https://www.youtube.com/playlist?list=PL3aaAq2OJU5HcbClqrOhqBDozF7HmxV-s)
|
||
- [Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec)
|
||
- [PCB Design for EMI & SI - Phil's Lab #64](https://www.youtube.com/watch?v=VtzPL8wQ8-E)
|
||
- [PCB Design for Advanced Users](https://youtube.com/playlist?list=PL3aaAq2OJU5EWfYT_Z93tc9pBF_Sidba_)
|
||
|
||
#### Soldering
|
||
|
||
- [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)
|
||
|
||
#### Using Breadboards
|
||
|
||
- [Everything You Need to Know about Breadboards](https://www.youtube.com/watch?v=mE33WpRWrXs)
|
||
- [How to Use a Breadboard](https://youtu.be/6WReFkfrUIk)
|
||
|
||
### FPGA Design
|
||
|
||
- [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/)
|
||
|
||
### Programming Fundamentals
|
||
|
||
#### 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/)
|
||
- [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
|
||
|
||
- [Embedded System Design using UML State Machines](https://www.udemy.com/course/embedded-system-design-using-uml-state-machines/)
|
||
|
||
#### Memory Allocation
|
||
|
||
- [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)
|
||
|
||
### Programming Languages
|
||
|
||
#### C
|
||
|
||
- [W3Schools C Tutorial](https://www.w3schools.com/c/index.php)
|
||
- [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)
|
||
|
||
#### C++
|
||
|
||
- [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
|
||
|
||
- [Assembly Language Programming with ARM – Full Tutorial for Beginners](https://www.youtube.com/watch?v=gfmRrPjnEw4)
|
||
|
||
#### Python
|
||
|
||
- [Real Python: Python Tutorials](https://realpython.com/)
|
||
- [Python Crash Course - Eric Matthes](https://a.co/d/hSMTJwE)
|
||
- [MicroPython - Python for microcontrollers](https://micropython.org/)
|
||
- [CircuitPython](https://circuitpython.org/)
|
||
|
||
#### Rust
|
||
|
||
- [The Embedded Rust Book](https://docs.rust-embedded.org/book/)
|
||
|
||
### Build System
|
||
|
||
#### GCC
|
||
#### Makefile
|
||
|
||
- [GCC and Make - Compiling, Linking and Building C/C++ Applications](https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html)
|
||
|
||
#### CMake
|
||
|
||
- [How to CMake Good](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s)
|
||
|
||
#### Bash Script
|
||
|
||
- [Bash scripting cheatsheet](https://devhints.io/bash)
|
||
- [Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4)
|
||
|
||
#### Docker
|
||
|
||
- [Introduction to Docker for the Embedded Developer](https://www.youtube.com/watch?v=Fz7ou-VBk-w)
|
||
|
||
### Version Control
|
||
|
||
#### 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)
|
||
|
||
### 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)
|
||
- [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/)
|
||
|
||
#### GPIO
|
||
|
||
#### ADC
|
||
|
||
#### DAC
|
||
|
||
#### Timers
|
||
|
||
#### PWM
|
||
|
||
#### Interrupts
|
||
|
||
#### Watchdog
|
||
|
||
#### DMA
|
||
|
||
#### 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/)
|
||
|
||
#### Power Management
|
||
|
||
#### GUI Design
|
||
|
||
- [LVGL](https://lvgl.io/)
|
||
- [TouchGFX](https://support.touchgfx.com/4.20/docs/introduction/welcome)
|
||
|
||
#### Functional Safety
|
||
|
||
- [Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/)
|
||
|
||
### Interfaces & Protocols
|
||
|
||
#### Common
|
||
|
||
#### Wireless
|
||
|
||
- [Bluetooth Low Energy Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/)
|
||
|
||
#### Industrial
|
||
|
||
#### High-Speed
|
||
|
||
#### Automotive
|
||
|
||
#### Network
|
||
|
||
#### Cellular
|
||
|
||
- [Cellular IoT Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/)
|
||
|
||
### Memories
|
||
|
||
### Sensors & Actuators
|
||
|
||
### 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/)
|
||
|
||
#### Embedded Linux
|
||
|
||
- [Introduction to Embedded Linux](https://youtube.com/playlist?list=PLEBQazB0HUyTpoJoZecRK6PpDG31Y7RPB)
|
||
|
||
##### Linux Kernel
|
||
|
||
- [The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/)
|
||
|
||
##### Linux Device Drivers
|
||
|
||
##### U-Boot
|
||
|
||
##### BuildRoot
|
||
|
||
##### Yocto
|
||
|
||
##### Qt
|
||
|
||
|
||
#### Real-Time OS
|
||
|
||
##### FreeRTOS
|
||
|
||
- [FreeRTOS - Market leading RTOS](https://www.freertos.org)
|
||
- [Introduction to RTOS](https://www.youtube.com/playlist?list=PLEBQazB0HUyQ4hAPU1cJED6t3DU0h34bz)
|
||
|
||
##### Zephyr
|
||
|
||
- [Zephyr® Project](https://www.zephyrproject.org/)
|
||
- [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)
|
||
|
||
##### NuttX
|
||
|
||
- [NuttX - The Apache Software Foundation!](https://nuttx.apache.org/)
|
||
- [Getting Started to NuttX](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 Beginners Guide](https://youtube.com/playlist?list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo)
|
||
|
||
##### QNX
|
||
|
||
- [BlackBerry QNX: Embedded OS, Support, and Services](https://blackberry.qnx.com/en)
|
||
|
||
##### VxWorks
|
||
|
||
- [VxWorks | Industry Leading RTOS for Embedded Systems](https://www.windriver.com/products/vxworks)
|
||
|
||
### Digital Signal Processing
|
||
|
||
#### DSP Fundamentals & Filter Design
|
||
|
||
- [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/)
|
||
- [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)
|
||
- [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)
|
||
|
||
#### 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)
|
||
|
||
#### Controls Systems / PID Control
|
||
|
||
- [Understanding Control Systems](https://youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd)
|
||
- [PID Controller Explained](https://www.youtube.com/watch?v=fv6dLTEvl74)
|
||
- [Understanding PID Control](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y)
|
||
- [PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U)
|
||
- [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)
|
||
|
||
#### MATLAB / Simulink
|
||
|
||
- [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/)
|
||
|
||
### Debugging
|
||
|
||
#### JTAG / SWD
|
||
|
||
#### GDB
|
||
|
||
#### OpenOCD
|
||
|
||
### Testing
|
||
|
||
- [Intro to CI/CD](https://youtu.be/1nxGcfIm-TU)
|
||
|
||
#### Unit Testing
|
||
|
||
- [Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking)
|
||
|
||
#### Integration Testing
|
||
|
||
#### 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)
|
||
|
||
#### AI/ML Basics
|
||
|
||
- [Getting Started with Embedded AI | Edge AI](https://www.udemy.com/course/getting-started-with-embedded-ai-hands-on-experience/)
|
||
|
||
#### TensorFlow
|
||
|
||
- [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)
|
||
|
||
### Embedded Security
|
||
|
||
#### Cryptography
|
||
|
||
- [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)
|
||
- [MOOC - Security Part3 : STM32 security features](https://youtube.com/playlist?list=PLnMKNibPkDnFzux3PHKUEi14ftDn9Cbm7)
|
||
|
||
#### Secure Boot & Secure Firmware Update
|
||
|
||
- [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--)
|
||
|
||
## History
|
||
|
||
The idea of creating this roadmap came from [vazeri / Embedded-Engineering-RoadMap-2018](https://github.com/vazeri/Embedded-Engineering-RoadMap-2018) which was well designed but had some flaws and not updated for years.
|
||
I took that idea, changed the structure of the roadmap and tried to improve it. The initial results can be accessed in [m3y54m / Embedded-Engineering-Roadmap-Archived](https://github.com/m3y54m/Embedded-Engineering-Roadmap-Archived) which is now archived. Early versions of the roadmap were created using [Balsamiq Wireframes](https://balsamiq.com) which is not suitable for these types of diagrams. So I decided to use Microsoft Visio instead and redrew the whole diagram.
|
||
|
||
## Copyright
|
||
|
||
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/) which means that you are free to **share** or **adapt** this work under the following terms:
|
||
|
||
**Attribution** — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
|
||
|
||
**ShareAlike** — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
|
||
|
||
## Acknowledgement
|
||
|
||
Special thanks to my friends in the community of Iranian Embedded Engineers in Twitter and [r/embedded](https://www.reddit.com/r/embedded) subreddit for their suggestions that helped in improving this roadmap.
|
||
|
||
## 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.
|
||
|
||
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.
|