Compare commits

...
Author SHA1 Message Date
Meysam Parvizi efe86eb64e Add Hardware Design Basics 2023-08-06 13:53:05 +03:30
Meysam Parvizi d9347c07cd Update README.md 2023-08-06 13:50:36 +03:30
Meysam Parvizi 2913f8d0c4 Update README.md 2023-08-06 13:49:29 +03:30
Meysam Parvizi 4f93d73ba7 Update README.md 2023-08-06 13:48:33 +03:30
Meysam Parvizi fa48729090 Update README.md
Add many useful links
2023-08-06 13:46:41 +03:30
Meysam Parvizi a8ea3d037a Update README.md
Add some links
2023-08-04 21:49:43 +03:30
Meysam Parvizi c2337f54d4 Update README.md 2023-08-04 20:41:55 +03:30
Meysam Parvizi 4a52aab313 Update README.md
Add note about Arduino
2023-08-04 20:03:19 +03:30
Meysam Parvizi f5dee15b72 Update README.md
Add CAN
2023-08-04 19:28:49 +03:30
Meysam Parvizi 71cac1f090 Update README.md
Add Qt Documentation
2023-08-04 14:56:11 +03:30
Meysam Parvizi aa1d88863c Update README.md 2023-08-04 13:28:01 +03:30
Meysam Parvizi 1f8ef79660 Update README.md 2023-08-04 13:17:12 +03:30
Meysam Parvizi 0bd7a541ec Update README.md 2023-08-04 12:25:55 +03:30
Meysam Parvizi 52a103d493 Update README.md 2023-08-04 11:51:50 +03:30
Meysam Parvizi d4e11f4952 Merge pull request #7 from hlord2000/cellular_info
Added references to nRF devacademy courses
2023-08-04 11:47:11 +03:30
hlord2000 3b7fb11dbc Added references to nRF devacademy courses 2023-08-03 23:22:50 -04:00
Meysam Parvizi 70467be709 Update README.md 2023-08-03 17:00:31 +03:30
Meysam Parvizi 7c89a8d994 Update README.md 2023-08-03 16:46:08 +03:30
Meysam Parvizi a974623490 Minor change 2023-08-03 16:43:49 +03:30
Meysam Parvizi 02d3600506 Update README.md 2023-08-03 16:42:13 +03:30
Meysam Parvizi 8ec15c8825 Minor changes
Remove the term "Industry Ready"
2023-08-03 16:00:27 +03:30
Meysam Parvizi 11b4c8e638 Update README.md 2023-08-03 15:31:18 +03:30
Meysam Parvizi 6f13c90f7d Update README.md 2023-08-02 14:48:29 +03:30
Meysam Parvizi 6e79f9f1b3 Update README.md 2023-08-02 13:27:54 +03:30
2 changed files with 174 additions and 29 deletions
Binary file not shown.
+174 -29
View File
@@ -6,40 +6,58 @@ Becoming an embedded engineer requires a broad understanding of both software an
## Roadmap
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/download/Rev.M-2023-08-02/Embedded-Engineering-Roadmap.png)
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/latest/download/Embedded-Engineering-Roadmap.png)
## Learning Resources
### ⭐️ Featured Material
#### Google
#### 🔎 Google
- [Searching is Your Super Power!](https://www.google.com)
#### Courses and Youtube Channels
#### 🎥 Courses and Youtube Channels
- [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)
#### Simulation
#### 🤡 Simulation
- [Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/)
- [QEMU](https://www.qemu.org/)
#### Arduino
#### 🕹️ Arduino
- [Arduino Language Reference](https://www.arduino.cc/reference/en/)
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.
#### STM32
- [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)
- [Getting Started with STM32 and Nucleo](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv)
#### 🐜 PlatformIO
#### Educational Websites
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/)
#### 👨‍🏫 Educational Websites
- [DeepBlueMbedded](https://deepbluembedded.com/)
- [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/)
#### ⚒️ 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/)
> **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.
@@ -56,23 +74,26 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [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/)
#### Electronic Components
- [Encyclopedia of Electronic Components - Charles Platt](https://a.co/d/83cSiU7)
#### Digital Circuits & Logic Design
- [Digital Design - Morris Mano](https://www.portcity.edu.bd/files/636444791235373856_Digitallogicdesign.pdf)
#### 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
@@ -94,13 +115,23 @@ Becoming an embedded engineer requires a broad understanding of both software an
### Prototyping Skills
#### 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)
#### Hardware Design Basics
- [Electronic Circuit Design - IFE - TU Graz](https://www.youtube.com/playlist?list=PLLpZ1DoEuR9tbV8r8bMSI94znm6pRB905)
- [Hardware Design - Phil’s Lab](https://www.youtube.com/playlist?list=PLXSyc11qLa1YhVCZ5xWPuPsE5MkgEy5TF)
- [Microcontroller-Based Hardware Design With Altium Designer](https://www.youtube.com/playlist?list=PL3aaAq2OJU5HcbClqrOhqBDozF7HmxV-s)
#### 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_)
@@ -114,11 +145,6 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [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)
@@ -144,6 +170,8 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### State Machines / UML
- [State Machines](https://www.youtube.com/playlist?list=PLPW8O6W-1chxym7TgIPV9k5E8YJtSBToI)
- [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
@@ -156,7 +184,6 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### C
- [W3Schools C Tutorial](https://www.w3schools.com/c/index.php)
- [Microcontroller Embedded C Programming: Absolute Beginners](https://www.udemy.com/course/microcontroller-embedded-c-programming/)
- [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)
@@ -165,7 +192,6 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [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)
- [Learn Modern C++ by Building an Audio Plugin (w/ JUCE Framework) - Full Course](https://www.youtube.com/watch?v=i_Iq4_Kd7Rc)
- [C++ Concurrency in Action - Anthony Williams ](https://www.manning.com/books/c-plus-plus-concurrency-in-action)
#### Assembly
@@ -182,6 +208,8 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### Rust
- [The Embedded Rust Book](https://docs.rust-embedded.org/book/)
- [Community Rust support projects for STM32 microcontrollers](https://github.com/stm32-rs)
- [Rust on ESP Community](https://github.com/esp-rs)
### Build System
@@ -210,31 +238,78 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [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/)
### 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)
- [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/)
#### GPIO
- [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)
#### 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)
#### Timers
- [STM32 TIMERS](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)
#### 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)
#### Watchdog
- [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)
#### DMA
#### Power Management
- [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
- [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
- [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)
#### 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/)
@@ -243,18 +318,64 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### Common
- [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)
##### I2C
- [STM32 I2C SLAVE](https://www.youtube.com/playlist?list=PLfIJKC1ud8gj_P7Qb28aTr0t92uk_vwg0)
##### SPI
- [Getting Started with STM32 and Nucleo Part 5: How to Use SPI | Digi-Key Electronics](https://www.youtube.com/watch?v=eFKeNPJq50g)
#### Wireless
- [Bluetooth Low Energy Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/)
#### Industrial
#### High-Speed
#### Automotive
- [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)
- [CAN Bus, OBD2 & J1939 Explained](https://www.youtube.com/playlist?list=PLpV68vjf4Xo4vZ_SjJ6tTlomYm-k18vDZ)
#### Network
- [Hands-On Network Programming with C - Lewis Van Winkle](https://www.amazon.com/exec/obidos/ASIN/1789349869/aoeu-20)
#### Cellular
- [Cellular IoT Fundamentals - Nordic Semiconductor](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/)
### Memories
#### NOR / NAND Flash
#### eMMC
#### EEPROM
- [Using EEPROM with Arduino - Internal & External](https://www.youtube.com/watch?v=ShqvATqXA7g)
#### SRAM / DRAM
### 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)
- [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)
- [DC Motor Speed Controller PWM With Potentiometer Using STM32](https://www.youtube.com/watch?v=8QpegVuV_AQ)
### Operating Systems
@@ -272,25 +393,44 @@ Becoming an embedded engineer requires a broad understanding of both software an
##### Linux Device Drivers
- [Linux Device Drivers - Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman](https://lwn.net/Kernel/LDD3/)
- [Mastering Linux Device Driver Development - John Madieu](https://www.packtpub.com/product/mastering-linux-device-driver-development/9781789342048)
##### U-Boot
- [The U-Boot Documentation](https://u-boot.readthedocs.io/en/latest/)
##### BuildRoot
- [Introduction to Embedded Linux Part 1 - Buildroot | Digi-Key Electronics](https://www.youtube.com/watch?v=9vsu67uMcko)
##### Yocto
- [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/)
##### 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/)
#### Real-Time OS
- [RTOS](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs)
- [Beyond the RTOS](https://www.youtube.com/playlist?list=PLPW8O6W-1chytjkg63-tM7MI0BvGxxPIP)
##### FreeRTOS
- [FreeRTOS - Market leading RTOS](https://www.freertos.org)
- [Introduction to RTOS](https://www.youtube.com/playlist?list=PLEBQazB0HUyQ4hAPU1cJED6t3DU0h34bz)
- [Getting Started With STM32 and Nucleo Part 3: FreeRTOS - How To Run Multiple Threads w/ CMSIS-RTOS](https://www.youtube.com/watch?v=CdpgqpuPSyQ)
##### 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
@@ -329,6 +469,7 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [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)
#### Controls Systems / PID Control
@@ -349,10 +490,18 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### 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
- [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
- [Intro to CI/CD](https://youtu.be/1nxGcfIm-TU)
@@ -386,20 +535,16 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [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)
### Security & Cryptography
### Embedded Security
#### Cryptographic Algorithms
#### Hash Algorithms
#### 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
#### 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)