Making a Great Choice

microcontrollers_photo-1476639633562-1f65a248e2c5.jpg
Photo license free unsplash.com by Felix Russell-Saw

Sketching out the features you might want

Sketch out on a piece of paper or in a notebook what you are looking to do in your project. Start with a general concept. Then list the general features that concept will use. Now you can start to search for parts that implement the features you have envisioned. 

You definitely do not want fewer features than your design calls for. On the other side, do not pick a part that has a great deal more features than you are looking for (although a bit of expandability might be desirable).

A list of design considerations

Here are some considerations to think about:

  • Power - does your project run on batteries or wall power/mains? If it only uses batteries, consider a design that conserves power to run longer between battery changes. Or consider if solar or other power sources might be desirable.
     
  • Speed - does your  project crunch a lot of numbers or gather huge amounts of data? Then speed may be good. Otherwise if the project is relatively simple, a smaller, slower board may be perfectly fine (and less expensive).
     
  • Price - what is your budget? Keep this in mind when shopping but don't consider buying anything that will not fulfill the design of your project.
     
  • Communications - does your project need to communicate information to you or other devices? Consider how to do that. Radio-enabled projects are great but they will require a transmitter and receiver so the amount of hardware may be double what you thought. You can communicate via USB to a computer often easily. Or maybe infrared signals?
     
  • Programming - less of a consideration but important. Your time is valuable, so something easier to program may save you time/money even if its a little more expensive
    The easiest to program boards use Microsoft MakeCode, a block/Scratch like interface, and only applies to a limited board selection like the Adafruit Circuit Playground Express.
    CircuitPython is more broadly supported in Adafruit boards but not all.
    Finally, most boards can be programmed via the Arduino code environment but there is a higher learning curve. The Adafruit Learning System will have examples but you will have to be somewhat comfortable extending the code to your own needs if necessary.
This guide was first published on Nov 07, 2018. It was last updated on Nov 07, 2018. This page (Making a Great Choice) was last updated on Apr 22, 2019.