ECE 443 – Distributed Processing and Control Networks (Fall 2023)


All assignments are due at the start of class on the specified due date. Late assignments will not be accepted without prior approval. Each assignment should have your name, the course number, the date, and the assignment designation (e.g., HW1, etc.). Attendance is mandatory. Students who miss five or more class periods will automatically receive a final grade of F.

Electronic Submission

Assignments will specify a particular submission format. These are generally either (a) a single PDF file and/or (b) a zip archive. PDF submisions should be uploaded as a single PDF file to the appropriate assignment in Canvas. MPLAB projects and other submissions involving binary files should be shared via your UI OneDrive account as a single zip file using the following naming convention (all lowercase):

For example, would be shared from Joe Vandal's OneDrive account, representing his MPLAB project folder for Project 1 in ECE443. Assignment designators are "h#" for homeworkor "p#" for projects.


Homework and Quizzes (10%)

Homework will be collected and graded throughout the semester. Students may work together on homework and should check their answers against the posted solutions. There may also be unannounced quizzes periodically, perhaps even daily! It is your responsibility to make sure you are prepared for every class.

  1. Aug 28  - Develop a software system (see ECE 341 Lab 4) on the ECE 341 Lab Platform that toggles LEDA and LEDB at different intervals, depending upon buttons 1 and 2 and specified as follows : No buttons pressed - both LED off; only BTN1 - LEDA toggles every 10 ms, LEDB every 15 ms; only BTN2 - LEDA every 20 ms, LEDB every 5 ms; both buttons - both LED every 10 ms. Capture appropriate waveforms using the logic analyzer and submit as a single PDF file with a one paragraph report summarizing your experience. The PDF is submitted via Canvas. No need to share the MPLAB project.
  2. Sep 1 - Download the FreeRTOS zip archive from the FreeRTOS section of the 443 Handouts directory and download the "blinky" repository into the "Projects" folder and follow the instructions on packaging your project below. Execute the MPLAB project and observe the behavior on LEDA and LEDB: What does this “instrumentation” say about the task execution behavior? Following the naming instructions under "Electronic Submission" above, submit  a single PDF file summarizing your findings via Canvas.
  3. Oct 3 - CRC calculation
  4. Oct 11 - Download the CAN repository into your FreeRTOS "Projects" folder and run the demo. Use Digilent Waveforms to capture the LED behavior and CAN message exchange by monitoring CAN1 RX on Pin 1 on connector JF on the Cerebot board. Please submit via Canvas a PDF with your captured waveforms. No discussion required - unless you encountered a problem!
  5. Nov 7 - Wireshark. Upload a PDF to Canvas by 10 pm PT
  6. Nov 17 - Download the tcp_timer repo as a zip file and build in the Projects folder under FreeRTOSv202104.00. Configure PuTTY appropiately and connect via TCP to the PIC32. Upoload a single PDF to Canvas by 10 pm showing Wireshark capture and the PuTTY window during execution.

Projects (65%)

There will be projects throughout the semester, selected to complement the lectures. Students are to work independently unless specified otherwise, and contact the instructor if they have questions. Project packaging instructions.

  1. Sep 5 - Project 1. Code due by10 pm PT. Report (single PDF file!) due before the next class period
  2. Sep 11 - Project 2. Share code via OneDrive by 10 pm PT. Upload single PDF report to Canvas before the next class period
  3. Sep 20 - Project 3. Share code via OneDrive by 10 pm PT. Upload single PDF report to Canvas before the next class period
  4. Oct 5 - Project 4. Share code via OneDrive by 10 pm PT. Upload single PDF report to Canvas before the next class period
  5. Oct 29 - Project 5. Share your project folder via OneDrive by 10 pm PT. No report, Doxygen, or Tracealyzer requested! :-)  Demo in lab during class on Oct 30.
  6. Nov 15 - Enhancements to Web-Vending Machine. Share code via OneDrive by 2:30 pm.
  7. Dec 1 -  Remote Control via TCP. Demo in lab during class. Share code via OneDrive beforehand.
  8. Dec 7 - Download the file from the Handouts/MQTT folder of my OneDrive, make the modifications specified in main.c, build, and run. Upload a single PDF to Canvas by 10 pm of a screenshot of the HiveMQ web client with your subscription data published by the PIC32.

Exams (25%)

There will be two exams: a midterm and a comprehensive final, weighted equally. Handwritten material permitted, but no printed material unless otherwise specified, i.e., open notes/closed "book".  Please bring your own paper, pencils, and an eraser to each exam.

  1. Oct 16. Topics list
  2. Final Exam. Mon, Dec 11, 3-5 pm. Topics list


Course grades will be available through Canvas. Final grades will be calculated using the traditional scale (90%=A, 80%=B, etc.).


Available on OneDrive.

Reference Material