
Many times we built our project after watching videos or reading articles online, trying to copy and improve upon existing ideas. However, it’s important to design projects with limited resources – focusing on low power consumption, limited processing capability and cost-effectiveness.
This document discusses the criteria to consider before selecting the “brain” of your project — whether it’s a Microcontroller, Microprocessor, System on Chip (SoC), or Single Board Computer (SBC).
Always refer to the datasheet of each component and ensure it meets your minimum requirements before procurement.
1. Processing power requirements
Select the microcontroller based on how much data needs to be processed.
- Simple independent projects like Light-operated switches, Water level controllers, or Line follower cars do not require complex processors. These can even be built using relay logic, and ready-made circuits are often available.
- For basic analog/digital processing, boards like Arduino, ESP12E, ESP32, or Raspberry Pi Pico are sufficient.
- For applications involving image processing, graphical display, or human-machine interfaces, use SBCs like Raspberry Pi, LattePanda, or ASUS Tinker Board, which support full operating systems (Windows/Linux) and offer higher processing capabilities.
2. Connectivity requirement
Choose your controller based on the communication interfaces needed:
- Serial (Rx/Tx) – Basic boards with serial communication only.
- USB/UART – For uploading code and monitoring via PC.
- Bluetooth – For mobile app or remote-controlled devices.
- Wi-Fi – For IoT or cloud-connected devices (e.g., hosting web pages, sending data to databases).
- Ethernet (LAN) – For wired network connectivity.
Some SoCs even support wireless code uploads once configured (e.g., via HomeAutomation firmware).
3. Sleep mode or Low power mode.
For battery-powered or remote applications, choose devices supporting sleep or deep sleep modes to conserve energy.
Ensure your code is written to utilize these modes effectively during idle times.
4. Internal memory requirements
Data storage can vary based on the type of information handled:
Use EEPROM (internal or external) for small data storage that must persist after power loss.
- For larger data like images or videos, use external SD cards, SSDs, or hard drives (especially with SBCs).
- If even larger data like video and images are to be stored we can use an external hard disk for SBC.
5. Number of peripherals required
Like count of the number of Digital Input, Digital output, ADC, Analog output, PWM, etc available in the Microcontroller and the requirement of the same for the project. It is always recommended to have some spare Pins for future additional requirements.
6. Other peripherals
Availability of following interfaces like Serial peripheral interface (SPI), Inter-Integrated circuit (I2C) for interfacing with other peripheral devices like sensors, controllers, etc. Other features like Display port, Camera Port, etc may also be considered as per the requirement.
7 Availability and Pricing
Whether the product being procured is easily available and affordable or cost-effective for the project. It is recommended to consider some margin on the above-listed criteria while selecting a device for future changes.
8 Dimensions
Mounting arrangement, shape, and size of the product are also to be checked before procuring for the project.
9 Power requirement
Based on the application power source for our project can be selected. It can be categorized as below
- Fixed location with Permanent power source from Grid. In these kinds of applications, we don’t have to worry much about power consumption and we can have standard power converters for our device
- Battery powered
- An application where processing/controller load is negligible in comparison to the actual load eg RC car, drone etc. Here also we can consider Liner and Low dropout (LDO) regulators which are lesser efficient but simple to assemble and provide low output noise.
- Long battery backup-based project, like a project where we require to sense data at fixed intervals and send data at frequent intervals to some receiving station. In this condition, for the long backup time, we have to consider energy-saving techniques. Using the sleep facility of the microcontroller and interrupts. Use Buck or boost converter instead of LDO for higher efficiency. Switch power regulator from Buck-Boost to LDO if high data accuracy logic is being executed like ADC sensing data.
10. Ease of programming and Support available on the Internet
For beginners, I will recommend using popular Dev boards, SoC which have lots of supporting data and videos on the net. So that it will be easy to develop the project and we will be motivated to build more projects. We can use much software like Python, C++, Arduino, etc in SoC provided we have the firmware of the same.
11. Security
In cases where the project requirement is to handle sensitive information and operate critical equipment, the security of the controller needs to be made sure. nowadays chip manufacturers are providing on-chip security hardware to prevent the chip from being hacked.
I hope you might have got a fair idea regarding the selection of a Microcontroller or SoC/SBC for your project.
