These boards are not good options if you’re starting embedded systems

Tobias Aguiar
3 min readApr 3, 2023

Do you want to get frustrated right in the beginning of your embedded journey? I’m afraid you don’t, although sometimes it is inevitable.. But that’s why we’re here, to reduce the chances of this event to happen.

Photo by alerkiv on Unsplash

Anyway, when we’re starting our embedded journey, shouldn’t we just pick a board by chance and just start practicing? Well, not quite exactly.

theoretically, you can, but it does not mean you should do it. Starting embedded systems with a complex board can be likened to having a bad client journey in sales. Just as a complex board can be overwhelming and difficult to navigate, a bad client journey can leave customers feeling frustrated and lost.

You don’t want this for yourself, do you?

Anyway, let’s get to the boards!

Raspberry pi : very user friendly, so why should I not start?

The raspberry pi series boards are quite famous among beginners who aspire to work in embedded systems fields. However, when starting to take a deep dive on the low-layer software without making use of hardware abstractions, things get complicated. Why?

Take the raspberry pi 4 (64 bit CPU Broadcom BCM2711, quad-core Cortex-A72 ARM v8) as example, here’s a diagram :

Example Cortex-A72 processor configuration

You see that if you don’t have a strong foundation in computer architecture, you’re going to struggle a lot in the beginning.

But if you want to give it a try anyway, I encourage you to do it!

Be prepared to face the following topics :

  1. Memory mapping
  2. Device drivers
  3. Operating Systems interactions

STM32 mcu series : Good architecture choice, not much for truly beginners

Part of companies build their products using those mcu series board. But, again, for beginner might be challenging. Here’s the reason :

Cortex-M4 processor components

While these features can be advantageous for some projects, they also require more advanced knowledge of computer architecture and programming concepts.

Beginners may need to learn about concepts like :

  1. memory-mapped I/O,
  2. interrupt handling,
  3. peripheral programming

in order to effectively program for the STM32 MCUs.

A quite good challenge if you don’t have computer architecture knowledge.

But don’t worry, that’s why I’m here :) I’ll create articles about all these topics in order to help you.

Final thoughts

For beginners who are just starting out with embedded software development, it may be more appropriate to start with a simpler platform like the Arduino or another microcontroller-based platform.

But, even though I didn’t recommend these 2 boards I mentioned before, I encourage you to give it a try. ARM architectures currently are the most widely used CPU architecture in the embedded systems industry, and it will force you to understand lots of concepts at once.

It’s hard, but it’s rewarding.

As always, thanks you for taking the time to read me!

Other articles

  1. How to effectively use chatGPT to increase your learning experience in embedded systems
  2. This book simply changed my life as a software developer

--

--

Tobias Aguiar

Software developer | Trying to make complex concepts look easy | Want help or discuss about embedded software development? Email me! tobi.aguiar01@gmail.com