Embedded Software Problems
C++ and very small memory pose diverse challenges. The Arduino runtime environment has its intricacies as well.
And then there is other people's software you may not have access to, such as firmware in components. Yes, ESP8266, I'm looking at you!
- C++ is not Java - C++ can be harsh for people used to Java. Especially memory handling holds a number of surprises.
- Memory Usage - The Arduino is small and powerful - and it all needs to fit in 32kB of flash and 2kB of RAM.
- SoftwareSerial - Sounds great, causes frustration. Emulation thing that need to happen fast has limits.
- Flaky ESP8266 Behavior - It's not always you, sometime the ESP8266 has it's own mind