Week 04 — Embedded Programming
Group assignment
Individual assignment
Learning outcomes
Checklist
- Linked to the group assignment page
- Documented what you learned from reading a microcontroller datasheet
- What questions have been answered
- Explained how you programmed the board
- Included your code
- Included a ‘hero shot’ of your board
W4 Documentation
Some general knowledge interpretation
I linked the lecture page and my notes to ChatGPT and had a conversation to clarify the fundamentals. Below are the highlights I used to build my Week 4 understanding.
- Embedded system: a specialized computer integrated into a device for a dedicated function.
- Architecture: Von Neumann vs Harvard memory models and their tradeoffs.
- RISC vs CISC: instruction-set style and execution behavior.
- Microprocessor vs microcontroller: external components vs all-in-one integration.
Research focus
First, I need to determine the area of research. I uploaded the whole lecture transcripts to ChatGPT and asked this question:
So in Neil’s class, he presented a lot of microcontrollers, and which of the top four is better to deep dive,
deep research, so for my project, because I need to control lights, which does not need too much frequency,
just needs to be easier to program, so probably it's ATTiny412. Then in the future, I will need Wi-Fi and Bluetooth
to connect with other devices, so which is probably use ESP32. And another one, which is also famous and easy to start,
so give me suggestions.
ChatGPT reply about the four microcontrollers:
- ATtiny412: simple and low-cost for basic light control.
- ESP32: Wi-Fi + Bluetooth for connected IoT use.
- RP2040: easy prototyping, strong middle step.
- SAMD21: clean ARM Cortex-M0+ platform used in many boards.
I created 5 NotebookLM pages: one for lecture materials and one for each microcontroller datasheet.
Datasheet links used for the analysis:
ATtiny412
ATtiny412 (tinyAVR 1-series) is a compact 8-bit RISC microcontroller up to 20 MHz with integrated Flash/SRAM/EEPROM, event system support, timers, ADC, and serial interfaces (USART/SPI/TWI). It is a good fit for minimal embedded control.
Helpful reference video: Programming ATtiny with Arduino Nano
More detailed presentation about selected microcontroller (ATtiny412)
SAMD21
SAMD21 is a 32-bit ARM Cortex-M0+ platform with a broad set of peripherals, low-power operation modes, and strong Arduino ecosystem support. It is a practical bridge from AVR to more advanced ARM workflows.
More detailed presentation about selected microcontroller (SAMD21)
ESP32
ESP32 combines microcontroller capabilities with built-in Wi-Fi and Bluetooth, making it highly suitable for connected devices. The datasheet covers architecture variants, security features, pin/boot behavior, and low-power states.
More detailed presentation about selected microcontroller (ESP32)
RP2040
RP2040 features dual Cortex-M0+ cores, 264 KB SRAM, and flexible PIO blocks for custom hardware interfaces. It provides a powerful but approachable environment for parallel control and rapid prototyping.
More detailed presentation about selected microcontroller (Raspberry Pi RP2040)