MAS.863/4.140/6.9020
How To Make (almost) Anything
Architecture Section
2024

9/18 Embedded Programming

Group Assignment: demonstrate and compare the toolchains and development workflow for alternative embedded architectures


Use case / Application #1: Wifi + Bluetooth + Servo

Chip:Xiao ESP32S3

Contributed by: Adi Kupershmidt

Capabilities:

Programming Workflow:

The ESP32, including the Xiao ESP32S3, can be used with either Arduino IDE or PlatformIO (an extension for VS Code).

I’ll probably choose the Arduino IDE for ease of use, here are the main stages for the workflow:

Performance Considerations:


Use case / Application #2: USB Communication + Sensor Data Acquisition

Chip:ATSAMD11D

Contributed by: Kareem El-Sisi

Capabilities:

Programming Workflow:

Performance Considerations:


Use case / Application #3: Sleep Monitoring with Wi-Fi + Bluetooth Connectivity

Chip: Xtensa ESP32

Contributed by: Kenneth Oranga

Capabilities:

Programming Workflow:

Performance Considerations:


Use case / Application #4: LED Control with Wifi

Chip: Xiao ESP32S3

Contributed by: Javier Ricardo Diaz

Capabilities:

Programming Workflow:

The Xiao ESP32S3 can be programmed with the Arduino IDE. Here are the steps for this project:

Performance Considerations:


Use case / Application #5: Game of Life Activation on LCD Screen via Wifi

Chip: Xiao ESP32C3

Contributed by: Sergio Mutis

Capabilities:

Workflow for programming:

Performance Considerations:


Use case / Application #6: A wearable sensor to detect proximity and speed of incoming objects, and upon detecting objects within a specified distance threshold (e.g. 5 inches or nearer) and speed threshold (e.g. 5mph or faster), triggers a specified action (such as turning on a motor).

Chip: ATtiny412

Contributed by: He Yutian

Capabilities:

Programming Workflow:

Performance Considerations:


Use case / Application #7: Bluetooth keyboard case for Apple Watch resembling a Blackberry

Chip: Nordic nRF52840

Contributed by: Nate Wiegand

Capabilities:

Programming Workflow:

  1. Set Up Development Environment: Install Nordic SDK or use Arduino IDE.
  2. Connect Hardware:
    • USB Connection: Use a micro-USB cable to connect the nRF52840 development board to your computer.
    • Drivers: Install the necessary drivers if your computer does not recognize the nRF52840.
  3. Install Drivers: Ensure the necessary drivers for the nRF52840 are installed.
  4. Write Code: Use Nordic SDK for robust BLE development or Arduino IDE for simpler projects.
  5. Upload Code: Compile and upload your code to the nRF52840.
  6. Debug: Use the serial monitor or Nordic tools to debug and test your code.

Performance Considerations:


Use case / Application #8: Dimmable motion sensor LED with tracking abilities

Chip: Raspberry Pi RP2040

Contributed by: Reishan McIntosh

Capabilities:

Programming Workflow:

Performance Considerations:


Use case / Application #9: Using sensors to detect light levels; turning motors and activating a solar-powered light when light levels are low enough; reversing motors and turning off light once light levels are high enough again

Chip: RP2040

Contributed by: Alex Stewart

Capabilities:

Programming Workflow:

Performance Considerations:


Use case / Application #10: Warmth faxing - when your long-distance friend/partner puts their hand on a temperature sensing device, your device warms up to match their temperature. (Ideally there is also a display that maps the heat)

Chip: XIAO ESP32C3

Contributed by: Ahzin Nam

Capabilities:

Workflow for programming:

Performance Considerations:


Use case / Application #11: Monitor sleep

Chip: currently reaching out to TA

Contributed by: Alicia Ramirez

Capabilities:

Workflow for programming:

Performance Considerations: