One of the most important steps in planning out a new project that will use embedded systems is choosing a microcontroller (MCU). In OPS2, we provide you a (small) variety of options to select from; this page is meant to help you compare between them and choose one that works best for you.
Different microcontroller platforms often provide their own integrated development environment (IDE) and software tool chains for compiling and writing firmware to the MCU, as well as for debugging. Most (if not all) of the MCUs listed on this page are compatible with PlatformIO, the IDE we will be using in OPS2.
You are welcome to use the IDE provided by the MCU manufacturer (e.g., STM32CubeIDE for STM32 series chips, Code Composer Studio for MSP430 series chips, etc.), however we will only be using PlatformIO in class; if you use another IDE, debugging software issues will be your responsibility.
Expand each board's category below to view more details about it, find setup instructions, and more. You can compare dev boards using the spreadsheet at the bottom of the page.
STM32 Nucleo L476RG (MCU: STM32L476RG) - $15
This is near the higher-end of the STM32L series of MCUs; it's targeted at ultra-low-power applications while still retaining a respectable amount of processing power.
Board Pinout: https://os.mbed.com/platforms/ST-Nucleo-L476RG/
Board schematic diagram: https://www.st.com/resource/en/schematic_pack/mb1136-default-c04_schematic.pdf
LD3 on = 5V power present (MCU is regulated down to 3.3V)
All logic is 3.3V, MCU pins ARE NOT 5V tolerant
JP5 jumper selects between USB 5V source (U5V side) and external (E5V side) source (6-15V into VIN pin)
USER button is Arduino pin 23 (PC_13 on MCU)
LD2 LED is Arduino pin 13 (PA_5 on MCU)
Adafruit nRF52840 Express Feather - $25
Does not support WiFi; only supports Bluetooth Low Energy
Uses a Raytac nRF52840 module paired with an external SPI Flash chip, and some other onboard goodies (including a 1S LiPo battery connector, with the ability to recharge a connected battery via USB power)
This is by far one of our most popular dev board options, centered around the ESP32-S3, a well-rounded MCU with excellent processing power, acceptable low-power options, and quite a few fancy peripherals.
You can learn about the features available on this development board from its datasheet here
These boards use a custom PCB developed by the OPS Team which is fitted with an ESP32-S3 WROOM module. The board also features a built in 1S LiPo/LiIon battery management circuit (including USB-C charging and battery level check circuit), two user LEDs, and three buttons (one is reset). For these boards, you may choose the WROOM module’s memory configuration and whether to fit a module with an integrated (PCB) antenna, or one with a U.FL connector for use with an external 2.4GHz antenna. Students who chose this option will assemble their dev board during the soldering sessions, in addition to (or in lieu of) the standard soldering kit.
Custom ESP32-S3 Dev Board (WiFi + Bluetooth LE) - $15
The ESP32-S3-WROOM-1-N16R2 module will be provided by default if none is specified
ESP32-S3 Board support files for PlatformIO can be found here
To install: First, create a project using any esp32 board with the Arduino framework (this causes PlatformIO to download the initial ESP32 dependencies; you only need to do so once). After you've created that project, you may delete it. Next, copy the board support files into your .platformio directory. Now you should be able to find and select the IEEE OPS2 ESP32 Dev Board when you create new projects.
The demo program that came pre-loaded on your dev board is also included in this download.
KiCAD Project Archive:
Board Version 1.0 (Unarchive zip in KiCAD home to open)
CAD Files:
STM32 Nucleo F446RE (STM32F446RE) - $15
This is near the higher-end of the STM32F series of MCUs; it's targeted at high-performance applications while still balancing reasonable power-usage
Board Pinout: https://os.mbed.com/platforms/ST-Nucleo-F446RE/
Board schematic diagram: https://www.st.com/resource/en/schematic_pack/mb1136-default-c04_schematic.pdf
LD3 on = 5V power present (MCU is regulated down to 3.3V)
All logic is 3.3V, MCU pins ARE NOT 5V tolerant
JP5 jumper selects between USB 5V source (U5V side) and external (E5V side) source (6-15V into VIN pin)
USER button is Arduino pin 23 (PC_13 on MCU)
LD2 LED is Arduino pin 13 (PA_5 on MCU)
Teensy 4.0/4.1 - $25/$30
Teensy 4 uses an obscenely fast Arm Cortex M7 microcontroller running at 600MHz (overclockable up to 900MHz). It is by far the fastest option available for OPS2 in terms of sheer processing speed, at the cost of much higher power consumption (100mA at minimum; not the best for battery-powered projects)
4.0 and 4.1 use a nearly identical MCU, however the 4.0 is on a more compact board with fewer pins and the MCU has less flash memory. The 4.1 has more pins available and an on-board Micro SD slot
Your board choice must approved in advance; if you want to use your own, contact an OPS Lead and let them know what board it is.
No basic Arduinos will be allowed (e.g., Nano / Uno / Mega). Their processors are too limited for our project needs, and we expect you to get out of your comfort zone in OPS 2.
If you have previously completed ECE 306, you may use your MSP430 LaunchPad. You may not use it if you are currently enrolled in 306.
Students using the MSP430 will be expected to resolve any programming or software issues on their own, as the course IDE (PlatformIO) does not fully support the MSP430FR2355