> Spending a ton of time reading datasheets and experimenting with assembling binary messages.
That's embedded development in a nutshell. The only part you're missing is wasting a week of your life tracking down a compiler heisenbug, because embedded devices have niche, poorly maintained compilers.
Though to be honest it's a matter of taste; natural sadists tend to "enjoy" embedded.
The weekend project was recompiling the kernel and adding missing wifi drivers. By the end of the huge yak shave (just to use an external wifi antenna instead of onboard wifi of pi4) I was so relieved to see the device boot and have the wlan get an address.
not to mention bugs in the micros themselves. I lost a few weeks of my life to one that would corrupt the stack in certain situations in an interrupt. The only way to debug it was with a logic anaylzer on all the memory / data lines / interrupts and decode it into opcodes and see what it was doing in the interrupts. Then when found, get bacck to the manufacturer who eventually gets back and says they already knew about it, but hadn't done and errata for it.... so yeah.... these days I mainly do backend/front end stuff :)
Take the sadomasochism one step further; do FPGA programming, learn the joys of properly enumerated case statements (or the hell of finding what one is blowing up your flip-flop/latch diagram).
You don't know true embedded BDSM until you've debugged incorrect timing constraints on an FPGA ... with a customer on the other side of the planet ... only to realize later that they have no idea how to design an HDMI compliant board and none of it was your own fault.
Or spending three weeks trying to achieve timing closure on a design, only to finally realize after much inspection of the routed designs by myself and an IntelFPGA FAE that the router was smoking digital crack the whole time and had no clue how to route their own divider units?
Or maybe the programming facility reversed bit ordering on a batch of the FPGA's flash chips and you only learn of that after a very, very long couple of nights of language barrier back and forth with a flummoxed customer.
That's embedded development in a nutshell. The only part you're missing is wasting a week of your life tracking down a compiler heisenbug, because embedded devices have niche, poorly maintained compilers.
Though to be honest it's a matter of taste; natural sadists tend to "enjoy" embedded.