Introduction to Microcontroller hardware and software development

Thread Starter

Davrowbf

Joined Feb 15, 2025
69
Anything is possible, but is it worth the effort?
You can learn a lot more by programming an MCU yourself. The only parts that would be worth reusing is the keypad and display.
I am interested in learning more about Programming and MCU and the hardware used/ Can you point me to some good sites for learning?
 

MrChips

Joined Oct 2, 2009
34,626
Every person has their own preferences and biases when it comes to MCU hardware and software learning platform. I am no exception. There is one popular MCU which is Microchip PIC family and there is one popular software platform, Arduino. The two are independent and not related with each other.

Then you will encounter discussions on the value of learning ASM (assembly language programming) or programming entirely in a high level language (HLL) such as C.

It all depends on one's objective. Are you more interested in completing a hardware/software project as quickly as possible, or do you prefer in having a solid understanding of the fundamentals? I fall in the latter category.

In an ideal learning experience, I suggest learning ASM on a basic MCU. However, an alternative is to learn to program in C initially and then pick up the fundamentals of ASM when the need arises.

From my personal adventures into MCU programming, I have selected Texas Instruments MSP430 as the starter MCU for any beginner. TI sells a developmental kit called MSP-EXP430G2ET LaunchPad. This is a plug-and-play developmental platform and can be used with TI Code Composer Studio (CCS). My preferred IDE (Integrated Development Environment) is IAR Embedded Workbench but it is pricey. There is an IAR-KICKSTART version that is free but with some restrictions.

I have a blog on MSP430 - Getting Started but it is based on IAR EW. I need to create a revised blog using CCS. Some of the links are out of date and need to be revised.
 

Thread Starter

Davrowbf

Joined Feb 15, 2025
69
Every person has their own preferences and biases when it comes to MCU hardware and software learning platform. I am no exception. There is one popular MCU which is Microchip PIC family and there is one popular software platform, Arduino. The two are independent and not related with each other.

Then you will encounter discussions on the value of learning ASM (assembly language programming) or programming entirely in a high level language (HLL) such as C.

It all depends on one's objective. Are you more interested in completing a hardware/software project as quickly as possible, or do you prefer in having a solid understanding of the fundamentals? I fall in the latter category.

In an ideal learning experience, I suggest learning ASM on a basic MCU. However, an alternative is to learn to program in C initially and then pick up the fundamentals of ASM when the need arises.

From my personal adventures into MCU programming, I have selected Texas Instruments MSP430 as the starter MCU for any beginner. TI sells a developmental kit called MSP-EXP430G2ET LaunchPad. This is a plug-and-play developmental platform and can be used with TI Code Composer Studio (CCS). My preferred IDE (Integrated Development Environment) is IAR Embedded Workbench but it is pricey. There is an IAR-KICKSTART version that is free but with some restrictions.

I have a blog on MSP430 - Getting Started but it is based on IAR EW. I need to create a revised blog using CCS. Some of the links are out of date and need to be revised.
Thanks MrChips seems like a long term comment. As per my objective it would have to be "completing a hardware/software project as quickly as possible". I think I might give in a try. Would something like this be a good place to start? ELEGOO UNO Project Super Starter Kit with Tutorial, 5V Relay, UNO R3, Power Supply Module, Servo Motor, 9V Battery with DC, Prototype Expansion Board, ect. for Arduino : Amazon.ca: Electronics
 

MrChips

Joined Oct 2, 2009
34,626
There is nothing wrong with that selection as far as I can see. It has many advance devices that you can eventually grow into if you are determined and highly motivated, for example, DC motor, stepper motor, servo, keypad controller, ultrasonic range finder. Don't plan on getting to use any of those for the first couple of years unless you are a fast learner.

Keep in mind that the journey into MCU electronics is vast and wide, starting with learning how to make an LED flash to building a sight-seeing voice-activated robot. Take the time to learn and master one incremental step at a time. The end result is a very satisfying and rewarding journey and experience that will serve you for the rest of your life.
 

MrChips

Joined Oct 2, 2009
34,626
Allow me to use the analogy of wanting to take a road trip but you have never driven a car before.

Your dream trip is to drive across the continent from one ocean to another. You have never driven a car and willing to learn. How would you prepare yourself and your equipment for such an exciting but challenging journey?

Firstly, you have passed your driving test, got your licence to drive and rearing to go.
What do you take with you? Maps, GPS, tour guides, food cooler, extra clothing.

How much gas does the car take and for how many miles (km)? What type of gas does it require?
What other fluids do you need to take, water, antifreeze, windshield washer fluid, engine oil, transmission fluid? What kind and how much?

What happens if the car breaks down? Would you know what to do?
What if you get a flat wheel? Do you know how to change the wheel? Does the car have a spare wheel? Does the car have wheel change tools? How do you inflate a tire? What pressure does it take?

What test and maintenance equipment should you take? DMM, OBD2 scanner, set of tools, car jack, safety vest, flares?
Will you be travelling in cold weather? Do you need to carry an emergency kit, food, water, blanket, candles, matches, flashlight, first aid kit?

Hopefully, you get my point. You are about to take a long journey. How prepared are you? What help is available along the way when you get stuck? Are you a self-learner and accustomed to solving problems on your own? Are you comfortable following written instructions or prefer to watch an online video of someone giving directions?

Your success depends on your own experience and personality and how you approach problem solving. Have the right approach and you will have an exciting and rewarding journey.
 

panic mode

Joined Oct 10, 2011
4,864
kit looks very good. it is a great value and safe choice for starters to learn about microcontrollers. but without knowing what the actual intended project is, there is no telling if it is a good fit or not.
if your actual application needs lots of processing or memory (or camera, WiFi...), Uno may be a bottleneck so one may consider alternatives (32-bit, more memory, higher clock speeds, ...).

for convenience, simplicity, lower power (battery?) Arduino kit is a great.
for more resources other kits may be better. perhaps RPI or ESP32.

to help you decide, check tutorials that kits include.
 

atferrari

Joined Jan 6, 2004
5,001
Assorted suggestions follow:

No matter what theoretical exercises you do, look for a project of your choice early on to finally get it running as you like. Don't make things excessively complex first.

Divide and conquer: when programming, test every step and move to the next only once the previous one is behaving as expected.

Document every change (software or hardware), even the simplest ones

Comment your code so you can revisit it days, months or years later.

Resist the temptation to label something you do not understand a "bug." The Microchip forums have many examples of this.

Buena suerte.
 
Top