Skip to content

Week 04: Embedded Programming

This week explores embedded systems, architectures, programming workflows, and practical microcontroller implementation in global session with Prof. Neil. The following page is from: https://fabacademy.org/2026/classes/embedded_programming/index.html


My SSTM

Mythird week SSTM

Topics Overview

Embedded Systems Basics

  • Internal vs External
  • Special-purpose vs General-purpose
  • Real-time vs Asynchronous

Start with local sessions

During Week 04 started, I learned the fundamentals of embedded programming and how software interacts directly with hardware through microcontrollers by global sessions then with my local instructor.

I understood the difference between general-purpose systems and embedded systems, and how embedded systems are designed for specific tasks with efficiency and reliability in mind. I explored key computer architectures such as Von Neumann and Harvard, and learned how instruction sets like RISC and CISC affect processor performance.

In addition, I practiced writing firmware, compiling code, uploading programs to a microcontroller, and debugging errors. I learned how to control hardware components using GPIO pins and techniques like PWM.

After my local session, two hour vidoes (the first below link) shared by Rico was very useful and also refered the second link too. 1. https://youtu.be/mfiRJ1qgToc?si=7aWL3jxEOS-QX1UN 2. https://www.youtube.com/watch?v=DPqiIzK97K0

Rico and us on the electronics
Rico and us on the electronics with components


Group Assignment

We work on Compare the Toolchains & Workflows

Demonstrate and compare the toolchains and development workflows for available embedded architectures Documenting comparison of

  • Installation
  • Programming
  • Debugging
  • Communication methods

Individual Assignment

Read Datasheet & Program a Microcontroller

https://fabacademy.org/2026/classes/embedded_programming/index.html

alt text

Study the datasheet

Microcontroller & Module Comparison Table

All the name of the listed equipments are from Fab Academy – (Embedded Systems Page) as Reference

This table summarizes the main differences, capacities, compatibility, modern relevance, similarities, and key features of commonly used microcontrollers and modules. *


Core Technical Comparison From Their DataSheet

MCU / Module Architecture CPU Speed Flash SRAM Wireless USB ADC PWM Modern Use Main Strength
RP2040 (XIAO) ARM Cortex-M0+ (Dual Core) 133 MHz 2 MB 264 KB ✔ Native 12-bit Very Modern Dual-core, PIO programmable IO
ESP32-C3 XIAO RISC-V (Single Core) 160 MHz 4 MB 400 KB WiFi + BLE ✔ Native 12-bit Very Modern Secure IoT, low power
ESP32-WROOM-32 Xtensa LX6 (Dual Core) 240 MHz 4 MB 520 KB WiFi + BLE 12-bit Modern High performance IoT
ESP8266 (ESP-01) Xtensa LX106 80–160 MHz 1 MB 160 KB WiFi 10-bit Limited Older Low-cost WiFi
ATSAMD11C ARM Cortex-M0+ 48 MHz 16 KB 4 KB ✔ Native 10-bit Entry-Level Small & low power
ATSAMD11D (D11D-echo) ARM Cortex-M0+ 48 MHz 16 KB 4 KB ✔ Native 10-bit Educational USB device projects
ATSAMD21E (D21E-echo) ARM Cortex-M0+ 48 MHz 256 KB 32 KB ✔ Native 12-bit Very Common Arduino Zero class
ATSAMD51 ARM Cortex-M4F 120–200 MHz 512 KB–1 MB 192 KB ✔ Native 12-bit Advanced DSP + Floating Point
ATtiny412 AVR 8-bit 20 MHz 4 KB 256 B 10-bit Minimal Very small control tasks
ATtiny45 AVR 8-bit 20 MHz 4 KB 256 B 10-bit Legacy Simple embedded control

Main Differences From Listed

Category ESP Series RP2040 SAMD Series ATtiny Series
Wireless ✔ WiFi / BLE
Processing Power High Medium-High Medium Low
Power Consumption Moderate Low Very Low Very Low
USB Native Some versions
IoT Ready With external module Needs module

Compatibility

Board Arduino IDE MicroPython CircuitPython PlatformIO
RP2040
ESP32 Limited
ESP8266
ATSAMD21
ATSAMD51
ATtiny412
ATtiny45

*Table prepared taking the datasheet from https://fabacademy.org/2026/classes/embedded_programming/index.html in ChatGPT tabular form created with prompt: change the data and compare the following electronics and give table


Similarities

  • All are microcontrollers (except ESP modules which include radio SoC)
  • All support GPIO digital I/O
  • All support PWM
  • Most support I2C, SPI, UART
  • All programmable via C/C++
  • Used in embedded systems & prototyping

Modern Relevance Ranking (2026 Perspective)

Very Modern Modern Educational Legacy
ESP32-C3 ESP32-WROOM ATSAMD21 ESP8266
RP2040 ATSAMD51 ATSAMD11 ATtiny45

Main Features Overview

RP2040 - Dual-core ARM - Programmable IO (PIO) - Excellent for real-time control - No wireless

ESP32 Family - Built-in WiFi & BLE - High clock speed - Best for IoT - Higher power consumption

ATSAMD Series - Native USB - Low power - Stable ARM architecture - Good for USB devices

ATtiny Series - 8-bit AVR - Minimal memory - Ultra-low cost - Good for small control tasks


Conclusion on the electronics from the datasheets analysis

  • Best for IoT: ESP32
  • Best for Real-Time & GPIO control: RP2040
  • Best for USB Devices: ATSAMD21
  • Best for Simple Control / Low Cost: ATtiny
  • Most Powerful ARM: ATSAMD51

My first microcontroler job as embedded systems

  • Write a program using input/output
  • Demonstrate communication (wired/wireless)
  • I wrote a simple input/output program using Tinkercad simulation and the Arduino IDE to test an LED with an Arduino board. (The code is generated in chatGpt with prompt, write ardiuno code for traffic single line LEDs)
LEDs for traffic light designed on tinkercad

LEDs for traffic light designed on tinkercad

  1. The program was designed to control an LED connected to a digital output pin (I use pin #9, #10 and #11), allowing it to turn on and off based on programmed instructions.
My first green light coming out

alt text My first green light coming out

  1. Using Tinkercad helped me simulate the circuit virtually before uploading the code to the physical Arduino hardware through the Arduino software. This project helped me understand basic input/output concepts, digital pin configuration (more of my time here), and how microcontrollers interact with external components like LEDs, the flowchart concept with the codes then finally 😁, I did my first ebedded system using ardiuno UNO, LEDs connectors and resistorswhich made me surprise and teach alot of things.

ardiuno structure Source: https://www.notion.so/Week-4-Embedded-Programming-3059bb27ac9880639568fc21d44dd548

The flow chart is done in MSPowerPoint

Flowchart for my first traffic signal work

My design to ardiuno UNO from thinkercad


Supported Boards

  • XIAO RP2040 / ESP32-C3
  • ATSAMD11C / D21E
  • ATtiny412 / 1614 / 3216
  • ESP8266 / ESP32
  • AVR128DB32

Reflection

I am ready to learn/unlearn about embedded systems, programming, and debugging this week. All things surprised me and am still run 🏃‍♀️

Refernces:

  1. Basic components and their introductions here (provided to me by instructor Rico): https://www.youtube.com/watch?v=mfiRJ1qgToc
  2. Other good refernce from Mathew https://www.youtube.com/watch?v=DPqiIzK97K0
  3. Chat GPT with prompt: “give the following main electronics items differences, capacities, compatibility, modern relevance, similarities in tabular form”*

Ideas for FP

Electronic dictionary