My Guide to Microcontrollers

Scary Stuff

Often times I find that the hardest part of a project is finding a good place to start. Will my concept work? Will I be able to source the parts? Is there well documented code that can be used as a starting point for my work? Microcontrollers are daunting. My goal for this guide I hope to give you, whomever you are, a stepping stone into my passion. I may not be the best developer, and I'm certain that there are people who could give much better advice than I could. However, I hope that my perspective gives you an unique light into microcontrollers, and if nothing else makes you think just a little bit more about how the world around you works.

What is a microcontroller?

A microcontroller is a tiny computer that is designed to do very specific tasks. They could be used to turn the lights on and off over your home network. Or maybe to make a macro keyboard for your computer. Or even a game console :D There are hundreds of different microcontrollers on the market, and as someone new to the field it can be daunting to decide what board you should use. However, I'm not going to go over my personal opinions on how to microcontrollers in this guide. Maybe in some future post.

Where do I start?

For new hobby developers, I would suggest coming up with a project idea before you purchase a microcontroller. Look around at other open source projects. Find some problem you wanna solve. Or maybe just come up with some cool gag idea. Over the years I have found that the best way to start learning programming, or development in general is to get that initial passion. Sure, you may not have a clue where to start, but without passion it doesn't matter. If you want to make something work, you will find a way to make it work, even if the solution is jank. However, there are still good tutorials out there that lead you through the basics. Sololearn's C++ tutorial is what I used to learn C++. They have great guides and the lesson structure helped me learn and retain the information. However, microcontroller's dont use C++, they use ino C. This makes everyone's lives more difficult, but it does help to grasp at least some C++ before diving straight into doing microcontroller programming. If this is your first introduction to programming in general, it might be a good idea to start learning the basics with a language like python before you learn C++. But you don't have to. You can do whatever you want. :D There's no "right way" to learn how do program. As long as you're having fun, and have passion for what you're doing, you're gonna want to learn how to do it the right way. If I was in this for money I would have switched hobbies years ago.

What board do I buy?

Personally, I would start with an arduino uno. They have good community support, and arduino has amazing documentation. I suggest takuing a look at their setup guide. I personally suggest using Arduino IDE 2.0 as your development IDE, as it's probably the most user friendly way to start off. When purchasing your uno, it wouldn't hurt to buy a kit that comes with wires and other components to start dipping your toes into the water.

What next?

This part is for you to decide! I can't force you to do anything, I'm just some random guy on the internet trying to maybe give you a stepping stone into a very fascinating hobby. Just remember that no matter what you decide you want to do, you can always go to the community for help. The arduino forums are full of questions, and there's a good change that whatever issues you're struggling with are things that other people just like you have also had to deal with! If you can't find anything about the issues you're having anywhere, then make a post in the arduino forums. There's a lot of people waaay smarter than I am there, and I'm sure someone can help you with whatever you're struggling to do. :D

Resources

Tutorials

Tutorialspoint C++ Tutorial
Sololearn's C++ Tutorial
Tutorialspoint Arduino Tutorial

Documentation

Arduino Language Referance
PlatformIO Reference