/embedded_roadmap

Roadmap for embedded systems (used for Beyond Arduino Workshop)

Essential Programming skills

In order to go beyond what the simple Arduino framework provides, you must have good programming skills and ESPECIALLY in C/C++. You must have good mastery of C/C++ basics like : Data-types, functions, arrays, strings, structs. You need good understanding of pointers to be able to handle memory related tasks easily. You will also need to know about the basics of the C preprocessor. Finally, a good knowledge of Object-Oriented programming is also critical to understand how C++ libraries are designed and how to use them correctly. Below you find the resources to learn all that.

Arduino & electronics basics

In order to go beyond Arduino, you first need to be already good with using the Arduino framework. For this I can't recommend enough THIS PLAYLIST or this book C programming for Arduino . You should do as many projects as possible to reach the point where you really need more out of your microcontroller.

Beyond Arduino (Embedded)

In order for you to be able to open the ATMEGA328p or any MCU reference manual and understand what is going on, you must have a good foundation in Digital Systems, and you should learn about the Basics of Computer Architecure. For this I can't recommend enough this playlist from ben eater YouTube channel .

  • Open the atmega328p reference manual and try to read a chapter about a peripheral of your liking, then configure and test what you learned.

  • Try the prev step for few times then switch to other micro like stm32 preferably and/or ESP

Other resources

At this point you're most likely very interested in learning and working with embedded systems. I leave you with the following additional resources where you can continue feeding your curiosity: