From 41aaad321c91dbc5b03e55e87cc477bfc9afecf8 Mon Sep 17 00:00:00 2001 From: Meysam Parvizi Date: Sat, 16 Dec 2023 23:48:57 +0330 Subject: [PATCH] Reorganize `README.md` for v1.2.0 --- README.md | 603 +++++++++++++++++++++++++++--------------------------- 1 file changed, 304 insertions(+), 299 deletions(-) diff --git a/README.md b/README.md index ae6e5cb..7b1e4a0 100644 --- a/README.md +++ b/README.md @@ -262,7 +262,7 @@ _________________ - [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 +#### PCB Design / EMC - [Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy) - [Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec) @@ -278,7 +278,7 @@ _________________ - [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 +#### 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) @@ -301,27 +301,6 @@ _________________ _________________ -### 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/) - -#### 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) - -#### 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/) - -_________________ - ### Programming Fundamentals #### Algorithms & Data Structures @@ -423,50 +402,6 @@ _________________ _________________ -### Build Tools - -#### GCC & Make - -- [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 Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html) -- [How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s) - -#### Bash Scripting - -- [Bash scripting cheatsheet](https://devhints.io/bash) -- [Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4) - -#### Docker - -- [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) -_________________ - -### 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) - -#### SVN (Subversion) - -- [Apacheยฎ Subversionยฎ](https://subversion.apache.org/) - -_________________ - ### Microcontrollers - [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/) @@ -558,30 +493,9 @@ _________________ - [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 - -- [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) - -#### 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) -- [IEC 61508 - Functional safety of electrical/electronic/programmable electronic safety-related systems](https://webstore.iec.ch/publication/5515) -- [DO-178C - Software Considerations in Airborne Systems and Equipment Certification](https://en.wikipedia.org/wiki/DO-178C) - -#### AUTOSAR Architecture - -- [AUTOSAR Basics | AUTOSAR Tutorial | Architecture | Automotive](https://www.youtube.com/watch?v=7b5BY1IAfwY) -- [Introduction to AUTOSAR](https://www.youtube.com/watch?v=NfZI8wvgZPo) - _________________ -### Simulation / Emulation Tools +### Hardware Simulation / Emulation Tools - [๐Ÿ‘ถ Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/) @@ -603,6 +517,80 @@ _________________ _________________ +### Memory Technologies & File Systems + +- [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/) + +##### 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) + +##### eMMC + +- [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) + +#### 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) + +#### 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) + +_________________ + +### Sensors & Actuators + +- [๐Ÿ’Ž 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) + +#### 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) + +_________________ + ### Interfaces, Protocols & Communication Technologies #### โ€ŒBasic Protocols @@ -795,80 +783,6 @@ _________________ _________________ -### Memory Technologies - -- [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 Memories - -- [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) - -##### eMMC - -- [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) - -#### 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) - -#### 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) - -_________________ - -### Sensors & Actuators - -- [๐Ÿ’Ž 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) - -#### 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) - -_________________ - ### Operating Systems #### Operating System Fundamentals @@ -880,80 +794,7 @@ _________________ - [๐Ÿ’Ž 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/) - -#### Embedded Linux - -- [FreeRTOS vs Linux for Embedded Systems](https://www.bytesnap.com/news-blog/freertos-vs-linux-embedded-systems/) -- [Linux Basics (LPIC 1)](https://linux1st.com/) -- [๐Ÿ‘ถ 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/) - -##### Linux Kernel - -- [๐Ÿ‘ถ Writing a Simple Linux Kernel Module](https://blog.sourcerer.io/writing-a-simple-linux-kernel-module-d9dc3762c234) -- [The Linux Kernel - David A Rusling](https://tldp.org/LDP/tlk/) -- [๐Ÿ’Ž The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/) -- [How Linux Works - Brian Ward](https://nostarch.com/howlinuxworks3) -- [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) - -##### Linux Device Drivers - -- [๐Ÿ’Ž 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/) - -##### 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) - -##### 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/) - -##### 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) - -##### 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) - -##### Qt Framework - -- [Qt Documentation](https://doc.qt.io/) -- [Introduction to Qt / QML (YouTube Playlist)](https://www.youtube.com/playlist?list=PL6CJYn40gN6hUXoYdyn4DHUTXfcVDJcfB) - -#### Real-Time OS +#### Real-Time Operating Systems ##### RTOS Basics @@ -1028,45 +869,78 @@ _________________ - [Microsoft Azure RTOS documentation](https://learn.microsoft.com/en-us/azure/rtos/) - [Azure RTOS ThreadX](https://github.com/azure-rtos/threadx) -_________________ -### Digital Signal Processing +#### Embedded Linux -#### DSP Fundamentals & Filter Design +- [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) -- [๐Ÿ’Ž 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) +##### Linux Kernel -#### Discrete Fourier Transform / FFT +- [๐Ÿ’Ž The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/) +- [The Linux Kernel - David A Rusling](https://tldp.org/LDP/tlk/) +- [How Linux Works - Brian Ward](https://nostarch.com/howlinuxworks3) +- [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) -- [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) +##### Linux Device Drivers -#### Controls Systems / PID Control +- [๐Ÿ‘ถ 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/) -- [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) -- [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) -- [๐Ÿ’Ž 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) +##### U-Boot -#### MATLAB / Simulink +- [The U-Boot Documentation](https://u-boot.readthedocs.io/en/latest/) -- [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/) +##### 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) + +##### 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/) + +##### 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) + +##### 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) + +##### Qt Framework + +- [Qt Documentation](https://doc.qt.io/) _________________ @@ -1097,6 +971,71 @@ _________________ _________________ +### Build Tools + +#### GCC & Make + +- [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 Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/index.html) +- [How to CMake Good (YouTube Playlist)](https://youtube.com/playlist?list=PLK6MXr8gasrGmIiSuVQXpfFuE1uPT615s) + +#### Bash Scripting + +- [Bash scripting cheatsheet](https://devhints.io/bash) +- [Bash Scripting Tutorial for Beginners](https://www.youtube.com/watch?v=tK9Oc6AEnR4) + +#### Docker + +- [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 + +- [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) + +#### 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/) + +_________________ + +### 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) + +#### SVN (Subversion) + +- [Apacheยฎ Subversionยฎ](https://subversion.apache.org/) + +_________________ + ### Testing - [Embedded Testing](https://artoftesting.com/embedded-testing) @@ -1124,7 +1063,6 @@ _________________ - [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 - [Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU) @@ -1140,45 +1078,24 @@ _________________ - [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) -#### Industry Standards & Certifications +#### Standards & Certifications - [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) -- [ISO 26262-1:2018 - Road vehicles - Functional safety](https://www.iso.org/standard/68383.html) - [Exploring EMC Basics & Standards](https://www.youtube.com/watch?v=duhBkhlH-WY) -_________________ +##### Functional Safety -### Embedded AI +- [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) +- [IEC 61508 - Functional safety of electrical/electronic/programmable electronic safety-related systems](https://webstore.iec.ch/publication/5515) +- [ISO 26262-1:2018 - Road vehicles - Functional safety](https://www.iso.org/standard/68383.html) +- [DO-178C - Software Considerations in Airborne Systems and Equipment Certification](https://en.wikipedia.org/wiki/DO-178C) -- [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/) - -#### 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) - -#### 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/) _________________ ### Embedded Security @@ -1224,6 +1141,94 @@ _________________ - [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/) +_________________ + +### AUTOSAR Architecture + +- [AUTOSAR Basics | AUTOSAR Tutorial | Architecture | Automotive](https://www.youtube.com/watch?v=7b5BY1IAfwY) +- [Introduction to AUTOSAR](https://www.youtube.com/watch?v=NfZI8wvgZPo) + +_________________ + +### Edge AI & TinyML + +- [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/) + +#### 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) + +#### 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/) + +_________________ + +### GUI Design + +- [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) + +_________________ + +### Digital Signal Processing + +#### 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) + +#### 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) + +#### Controls Systems / PID Control + +- [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) +- [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) +- [๐Ÿ’Ž 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 (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/) + ## History At first this was meant to be my personal reading list but as the list gradually became bigger and bigger, I wondered why not share it with others. So I did research on current job postings for embedded engineering roles, selecting the most frequent skills and including them on a roadmap. In order to make the roadmap more comprehensive I also added some basic skills and finally came up with what you see here.