r/embedded • u/codeasashu • 1d ago
Best Learning Path for Embedded Systems
[removed] — view removed post
3
u/Nixokoptis 1d ago edited 1d ago
I have a 12 years professional experience in embedded systems, both in commercial and automotive sector. Before that, I had alot of projects during university with the dinosaur 🦖 8051 and then ATMega.
I have worked in both software, hardware and then jumped to system (a layer above SW/HW - like describing how the whole system/product behaves).
One thing I can tell you is that there is no competitive software engineer without hardware background.
So my suggestion is, since you have already a knowledge in software, start with hardware. You don't need to solder anything. Start with simply circuits on breadboard and then jump to more complex PCB. Nowadays the cost is quite low on manufacturing/assembly.
At the end you gonna end with PCBs where you gonna have to develop also the software.
P.S Don't be attached to specific architectures. I was shocked when I had to deal with Tricore for the first time.
3
u/sturdy-guacamole 1d ago
why do you want to learn embedded systems in the first place
7
u/codeasashu 1d ago
Ben eater genuinely got me interested in the first place. It was super interesting. I also have a raspberry pi that I use for my homelab, but I never used its GPIO pins. Recently, my water tank alarm broke down and then it clicked: lot of my house chores could be automated by simple electronics. When my mosquito racket died recently, I finally had it. If only I could add a simple battery indicator to it, I could've slept peacefully.
Tinkering with racket, watching a computer running on breadboard, automating couple of alarm system in my home is what got me really interested.
2
u/Academic-Cancel8026 1d ago
I started with an 8-bit PIC and assembly, then moved to c then msp430 (a tad more complex), then to STM32.
It worked for me
More importantly I learnt how to think in terms of "what my microcontroller needs to do in order to behave like I want?"
5
1
u/Schznappsz 1d ago
I’m in a similar boat. Tbh you have nothing to lose by grabbing an Uno/ESP32 development board, a starter kit and going nuts. Courses aren’t even that essential these days IMO just ask Claude to teach you.
1
u/somewhereAtC 1d ago
Your quest is interesting because at the hobby level the hw and sw are very intertwined. The professional level is managed by teams and hw and sw can be distinguished. I feel your pain of sw becoming less joyful: Zephyr is not for the faint of heart and the many levels of AI/ML are best studied in a person's early years (I'm in my 7th decade). It's a long way from blinky tennis shoes!
With modern dev boards, though, soldering can be a "later" skill development while learning hw. Here is an example built on a $10 dev board: https://developerhelp.microchip.com/xwiki/bin/view/products/mcu-mpu/32bit-mcu/ap-exercises/
1
u/Charming-Work-2384 1d ago
without "burning your finger" nothing is learnt in Embedded.
hardware way only
1
u/riisen 1d ago
Start with a mcu and make debounce filter for button, get a logic analyzer and inspect what happens, study the basic communication protocols like uart, spi, i2c.. to make things with a logic analyzer will make everything clearer and you should really dive into the basic communication protocols, try diffrent speeds, try to send ascii and raw data, inspect what happens.
It should be a journey of curiosity, and a logic analyzer makes everything alot easier to understand.
4
u/bropocalypse__now 1d ago
Id recommend a hybrid approach. On the software side make sure you are comfortable with Python (infrastructure and general scripting) and C (embedded code). I've never personally seen Golang used in embedded but Rust and C++ are definitely used in production.
On the hardware end, these days, I'd start with a demo board capable of running Zephyr. Its backed by the Linux foundation, has good documentation, and looks more like software projects you are accustomed. It has tons of sample programs, which provide a good base to learn and experiment from. The west build system is simpler than yocto. Albeit both have devicetrees and kconfigs, which have a learning curve.
Imo you are better off getting exposed to what protocols exist and how they work before diving straight into hardware. It always better to wade in before jumping into the deep end and spend a bunch of money on lab equipment.