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?
-
Upgrade Path - While higher level programming languages like CircuitPython make migration between very different chip architectures much easier, lower level programming like Arduino are harder to port. Using an upgrade path series of chips like SAMD21-SAMD51 or RP2040-RP2350 can make sense.
-
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. The SAMD21 boards are a base model with CircuitPython running better on SAMD51, nRF52840, RP2040 and RP2350 boards. CircuitPython does not run on 8-bit boards like the ATtiny and 32u4 boards.
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.
Page last edited July 23, 2025
Text editor powered by tinymce.