Skip to main content
Version: ACS CC

Welcome

Welcome to the Microprocessor Programming (PM) class.

During the class you will learn how to design and implement a hardware device.

You takeaways from the course are:

  • learning how a microprocessor (MCU) works, using as an example the RP2040 MCU from the Raspberry Pi Pico W as well as a Atmega328P;
  • learning how to design your hardware schematics using KiCad and how to create the bill of materials (BOM) for it;
  • building the hardware device either using a breadboard, a prototyping board or a printed circuit board (PCB);
  • learning how to develop the software that controls hardware in Rust;
  • learning how to develop the software that controls hardware in C;
  • presenting the hardware device at the PM Fair show.

Team

Daniel Rosner Daniel Rosner

Course Professor
daniel.rosner[at]upb.ro

Irina Niță Irina Nita

Lab Professor
Responsible for software
GitHub: irina-nita
irina.nita@oxidos.io

Irina Bradu Irina Bradu

Lab Professor
GitHub: Irina Bradu
irina.bradu@wyliodrin.com

Gabriel Păvăloiu Gabriel Păvăloiu

Lab Professor
GitHub: GabrielPavaloiu
gabriel.pavaloiu@upb.ro

Andrei Zamfir Andrei Zamfir

Lab Professor
Responsible for hardware
GitHub: ZamfirAndreiPaul
andrei.zamfir@wyliodrin.com

Teodor Dicu Teodor Dicu

Lab Professor
Responsible for hardware
GitHub: DTeodor-Alexaandru
teodor.dicu@wyliodrin.com

Alexandru Ungureanu Alexandru Ungureanu

Lab Professor
GitHub: AlexU01
alexagungureanu@gmail.com

Timetable

ActivityGroupDayHourRoomProfessor
Lectureall studentsWednesday08 - 10EC105Daniel Rosner
Lectureall studentsMonday18 - 20PR001Daniel Rosner
Lab331CC ATuesday12 - 14ED218Teodor Dicu
Lab331CC BTuesday12 - 14ED217Irina Bradu
Lab332CC ATuesday14 - 16ED218Irina Niță
Lab332CC BTuesday14 - 16ED217Irina Bradu
Lab333CC AWednesday16 - 18ED218Teodor Dicu
Lab333CC BWednesday16 - 18ED217Alexandru Ungureanu
Lab334CC AWednesday18 - 20ED218Andrei Zamfir
Lab334CC BWednesday18 - 20ED217Alexandru Ungureanu
Lab335CC AThursday18 - 20ED218Andrei Zamfir
Lab335CC BThursday18 - 20ED217Gabriel Păvăloiu

Grading

PartDescriptionPoints
Lecture testsYou will have a test every few classes with subjects from the previous class (will pe anounced).2p
LabYour work at every lab will be graded.1p
LabFinal Lab Assigment (Final Lab Test)1p
ProjectYou will have to design and implement a hardware device. Grading will be done for the documentation, hardware design and software development.3p
ExamYou will have to take an exam during the session. This will be in written format.3p
TotalYou will need at least 5 points to pass the subject.10p

Rules

  1. You can be absent without motivation at a maximum of 2 labs.
  2. Labs CANNOT BE RECOVERED OUTSIDE THE CURRENT WEEK
  3. You can justify your absence from the lab (medical reasons) within a maximum of 2 weeks from the date of your absence
  4. Each student must come with their group to the lab, if there are problems you must announce in advance.
  5. You can be late for lab up to 10 minutes
  6. Students who are catching up on the subject can participate at labs only if there are free places
  7. You will need a github account with your full name and a real profile photo

Bibliography

Hardware

  1. Joseph Yiu, The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors, 2nd Edition
  2. Joseph Yiu, The Definitive Guide to ARM® Cortex®-M23 and Cortex-M33 Processors
  3. Charles Platt, Encyclopedia of Electronic Components, Volumes 1, 2, 3
  4. Paul Scherz, Simon Monk, Practical Electronics for Inventors, 2nd edition
  5. Raspberry Pi Ltd, RP2040 Datasheet

Software

  1. Steve Klabnik, Carol Nichols, The Rust Programming Language
  2. Rust Team, Rust Embedded, The Discovery book
  3. Raspberry Pi Ltd, Getting started with Raspberry Pi Pico-series
  4. embassy_rp crate documentation
  5. embassy_rp examples
  6. Raspberry Pi Pico Python SDK
  7. Connecting to the Internet with Raspberry Pi Pico W