Skip to content

4. Embedded Programming

Setup/Schedule

Class/issue/#7

  • February 12: global eval started
  • March 9: US Daylight Savings Time
  • by March 1: student+local+global intro meetings
  • April 9-23: break, midterm
    • preceding weekly assignments due
    • student+local+global review meetings
    • review assignments and final plan
    • sort into likely/possible/unlikely to finish this cycle
  • June 4: weekly assignments due
  • June 9-13: final presentations
  • June 16-20: student+local+global review meetings
  • June 23: global eval decisions deadline
  • July 4-11: FAB25

Assignment

Group Assignment

Group Assignment

demonstrate and compare the toolchains and development workflows
for available embedded architectures

Assessment FAQ

Is it enough for the group assignment if we compare different microcontrollers in theory?

Answer: No, You need to physically program devices from at least two different MCU families using different toolchains. Simulation is ok only for individual assignment.

Processor families Chip name in-system development Ref. Example
AVR ATtiny44, ATmega328P ISP Arduino ISP
FA2018
ArduinoUno(ArduinoISP) > t44Board
AVR 1-series ATtiny412 ,1614 ,3216 UPDI FA2020 USBSerialCable > UPDI > t412Board
ARM SAMD11C JTAG/SWD Bali Fest2022 XiaoSAMD21(Daplink) > SAMD11Board
Xtensa ESP32 FTDI
USB-Serial
Barduino
FA2020
USBSerialCable > BrduinoBoard

Individual Assignment

Individual Assignment

browse through the data sheet for your microcontroller

Document what you learned from reading the data sheet

Individual Assignment

write a program for a microcontroller,
and simulate its operation,
to interact (with local input &/or output devices)
and communicate (with remote wired or wireless connections)

Simulate - Wokwi

interact

  • some sort of input and output

communicate

  • to send messages to and back

Individual Assignment

extra credit: test it on a development board
extra credit: try different languages &/or development environments

different languages &/or development environments

Development environment Language
Arduino IDE Arduino
Thonny MicroPython
Pico SDK + VScode C/C++

Linenums

Tips: Markdown

No line mumber

``` cpp
line1
line2
line3
```
line1
line2
line3

Line mumber from 1

``` cpp linenums="1"
line1
line2
line3
```
1
2
3
line1
line2
line3

mkdocs.yml

markdown_extensions:
  - pymdownx.highlight:
     #    linenums: true #コメントアウトのままで必要な時にだけ都度linenums="1"と書けばよい

if it dosen’t work on non_index.md, try this

```cpp linenums="1" title="example.cpp"
line1
line2
line3
```
example.cpp
1
2
3
line1
line2
line3