Arduino is a lovely little ecosystem where most of us have started our electronics journey. I still remember the moment I got my first LED blinking program working! Since then we have done several projects using Arduino. Some of those we by following some online tutorials while others were produced out of our own ideas with a little bit of online research.
But there comes a point in every inventor’s journey where we have simply outgrown Arduino. If you are reading this post then you are at the same place where I was some years back. I wasn’t sure where to go from there as I was not familiar with what paths are available and what lies at the end of those paths. I have written this article based on my experience so that you can have a better idea about how to proceed from this point.
There can be mainly 2 reasons for us to move away from Arduino
- You need an educationally more challenging arena to play in, so as to step away from being a hobbyist to get to a professional level inventor.
- The Arduino hardware is limiting you from completing your next project
Let’s see some ideas you can implement to continue your journey in one of the above paths.
Path#1: Hobbyist to Professional Path
If you want to move from being a hobbyist to being a professional then you have 2 choices to specialize in
- Embedded Software Engineering
- Embedded Hardware engineering
Embedded Software Engineering
If you want to go on this sub-path there are 3 sub-sub-paths for you to specialize in. They include the following
- Baremetal embedded development
- RTOS embedded development
- Embedded Linux development
Bare-metal embedded development
Baremetal development refers to software which is built directly on top of the hardware without any operating system in the middle. The boards I would suggest for this kind of development are
- Texas Instruments TM4C123G Launchpad and
- STM32 Discovery board
I suggest you to start by taking a look at the articles posted in the Basics of Embedded Systems section of this website. Once you are familiar with the topics presented there, you should be good to go to the available online resources.
There are several good online resources for you to learn from for both these boards. Manufacturers have provided some excellent tutorials for you to get familiarised with these boards. Also, there are several available online courses for you to get familiarized with Bare-metal embedded development.
If you are in love with the ATMega328p then you can even learn bare-metal development on top of if by moving away from the Arduino IDE to a more professional one like Eclipse or Atmel Studio.
For recommended books and courses please visit the **resources** page.
RTOS Embedded Development
When the project complexity grows it is a good idea to move away from the Bare-metal design to an operating system based design. For most applications, a simple RTOS OS is good enough.
A good starting point for this journey is to learn FreeRTOS an open-source embedded operating system. I have written an article of how to get started with FreeRTOS which can be found here.
The same board as seen in the section above can run FreeRTOS, so no need to pick up new hardware just yet. If you wish to have a look at some open-source professional FreeRTOS based software then I suggest you to go for esp32 based development boards
Embedded Linux Development
When your project complexity goes even further then you will find yourself looking for a full-blown operating system like Linux. For embedded Linux development I would suggest you to go for Beaglebones Black. This one has open-source hardware and software and has good books and resources to learn from.
Another option is the Raspberry Pi ecosystem which is also a very good option to start learning embedded Linux. For some good books and resources be sure to check out the ***resources*** page.
Embedded Hardware Engineering
To become a hardware engineer you need to learn how to Select Component, design PCBs, and Learn to Assemble them. On top of that, you need to learn some electronics. I have written an article about what does an embedded hardware engineer do, and how to become one here.
The best hardware platform for you to start doing this is actually still the Arduino! Being an open-source hardware the Arduino gives you the opportunity to practice your skills. I would suggest the first project to just create your own clone of the Arduino, then carry on from there.
Path#2: Moving to a Better Hardware
If you want to do projects solely for the pleasure it brings but you find that the hardware of Arduino is too limiting for the projects you have in your mind then this path if for you.
You can take 2 paths from here by going for either
- a more powerful hardware
- a more miniaturized hardware
The most popular option here is Raspberry Pi-4B since it has an excellent eco-system in terms of software, tutorials and community supporting it and is very cheap and easy to get started with. You can build some fairly powerful projects like home entertainment systems and your own web server using the Raspberry Pi.
I have a list of recommended books and courses for you to choose from to start your journey using the Raspberry Pi. You can check them out **here** on the resources page.
If the Arduino Uno is too big for your projects then you can always go for its miniaturized variant the Arduino Nano which hosts the same ATMega328 chip but in a smaller package.
If that doesn’t match your requirements in terms of power, then I suggest you to go for the much more capable Raspberry Pi Zero board.
These are not the only boards available, I have listed 14 different boards which can serve as an alternative for the famous Raspberry Pi in this article here. Whatever your needs are I am sure there is a board with the required capabilities in that list.
Okay, let’s stop here.
I hope you enjoyed reading this article. Feel free to share it with your friends and colleagues!