<aside> 🔭 TLDR: Both a bare MCU implementation and a carrier board implementation have their upsides and downsides, one isn’t inherently worse than the other. When choosing, you should think about what is best for the project’s scope and your team’s skill level in using ECE development tools, such as schematic design, PCB design, manufacturing ability, code complexity, and flashing tools. Carrier boards are easier but less clean and bare MCU boards are harder but cleaner

</aside>

Overview

Typically any system that requires any sort of controls, computing, and telemetry will need some sort of microcontroller or system on chip (SoC). These come in a few different form factors with varying levels of customizability. This page will focus solely on choosing what form of microcontroller to implement.

Bare MCU or Carrier Board?

Bare MCU

<aside> 💡 Looking for help on implementing/spec’ing for a bare MCU implementation?

</aside>

The term “bare-metal programming” refers to programming without any operating system or resources to aid in the running of your program; although you gain fast access to register information and memory, there aren’t any safeguards or optimizations in place to aid your program in running.

When I refer to a “bare MCU,” I am referring to a microcontroller unit implemented directly on a custom PCB, like in the picture below. I.e. you make the PCB and directly slap the chip on there and route/set up all the IO of the chip.

Bare MCU Sample Implementation

Bare MCU Sample Implementation

This reduces form factor incredibly and can result in much lower power draws, as well as being able to directly configure the IO of the chip to suit your needs. However, this adds additional complexity in implementation and flashing. This is also typically how most professional companies will end up doing it since they have the manpower to drive this additional complexity in development. You might also want to weigh the difficulty in manufacturing and try and spec an MCU that is relatively easy to solder (i.e. through drag soldering).

Carrier Board

<aside> 💡 Looking for help on implementing/spec’ing for a carrier board implementation?

</aside>

With microcontroller development boards, like an STM32 Nucleo board or a Teensy 4.1 (shown in pictures below), the bare MCU has already been implemented for you and all you need to do is route the IO of the board itself. The routing of the IO can be done through a “carrier” board.

Teensy 4.1 Dev Board

Teensy 4.1 Dev Board

STM32 Nucleo Dev Board

STM32 Nucleo Dev Board

These development boards typically have a bunch of safety circuits and other chips onboard to aid development, such as an EEPROM, onboard activity LED, reset button, and maybe even an IC to handle flashing the chip. All of that would need to be manually implemented with a bare MCU. However, you lose out on the configurability, have to work with a much larger form factor, and usually end up with an overspec’ed microcontroller board because there are things that you will never need onboard.

“Carrier” board for an STM32 dev board using vertical connectors, but can just be soldered in place to reduce height at the  cost of ease of disassembly

“Carrier” board for an STM32 dev board using vertical connectors, but can just be soldered in place to reduce height at the cost of ease of disassembly