ATmega Code Submission

Assignment submissions ::: assignsubmission_atmegacode
Maintained by Tangat Baktybergen, Ivan Volosyak
This plugin enhances assignment submissions for microcontroller labs by enforcing structured PDF and ZIP uploads, validating embedded student IDs, checking .hex file compilation status, and providing immediate feedback. Ideal for ATmega-based lab courses requiring automated pre-check and cheating detection.
Latest release:
1 sites
56 downloads
Moodle 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 5.0

Description

This plugin provides automatic pre-checking and validation of student submissions for microcontroller lab assignments using ATmega devices. It enforces file naming conventions, validates ZIP structure, checks compilation status, and improves feedback — making the grading process smoother and more secure.

Designed for embedded systems or C-based lab courses, this plugin helps instructors ensure students submit correct, compiled .hex files along with their reports.


✅ Key Features

  • One ZIP + One PDF per Submission
    Students must submit:

    • A PDF lab report (≤ 5MB)

    • A ZIP archive of code files (≤ 50MB)

  • Automatic Filename Handling
    Both PDF and ZIP are auto-renamed to:
    LabX_studentID_WS20XX.pdf and LabX_studentID_WS20XX.zip

  • ZIP Content Validation

    • No nested ZIPs or folder structures deeper than 1 level

    • Max 50 folders/subfolders allowed

    • Forbidden file types (e.g. .exe) are blocked

  • .hex File Verification

    • Checks for empty .hex files

    • Detects if student ID (00000) was not replaced

    • Verifies presence of student ID in binary

    • Configurable minimum .hex file count

  • Source File Compilation Checks

    • If .c/.h files are newer than .hex, submission is blocked

    • If .hex is too new (over 1 hour newer than source), shows a warning

  • Missing Compiled Files Detection
    Flags folders that contain source code but no compiled .hex or .elf files

  • Teacher-Only Cheating Warnings

    • Detects mismatches between expected and actual student IDs inside .hex

    • Flags suspicious cases (e.g., reused or borrowed .hex)

  • Color-Coded Feedback and Validation Report

    • Students see ❌ errors and ⚠️ warnings instantly

    • Detailed .txt validation report generated on failed submission

    • Submissions with blocking errors are rejected; files are not saved


💼 Example Use Cases

  • Embedded systems or microcontroller lab courses using AVR/ATmega

  • Auto-evaluation of .c, .h, .hex, and .elf files

  • Secure submission environments for student-generated code

  • Grading support in large classes with repeated code submission


🔧 How It Works

  1. Instructor sets up an assignment with ATmega plugin enabled.

  2. Students upload 1 PDF + 1 ZIP.

  3. The plugin:

    • Validates the file structure and size

    • Checks .hex compilation and ID embedding

    • Flags any violations or suspicious content

  4. Students receive instant feedback (with download option for report).

  5. Teachers can view extra cheating-related warnings during grading.


📂 File Types Recognized

  • .c, .h, .elf, .hex, Makefile

  • Nested .zip files or .exe are rejected


👥 Authors

  • Ivan Volosyak

  • Tangat Baktybergen


📚 Reference Material

Includes code examples inspired by:
"Microchip AVR Programming using ATmega Microcontrollers"
Volosyak, Ivan. ISBN: 978-3-8440-8015-5
Published by: Shaker Verlag, Germany, 2021
👉 Free suplemental material


🏛 Developed at

Rhine-Waal University of Applied Sciences (HSRW), Kleve, Germany


🔓 License

GNU GPL v3 or later

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6
Screenshot #7
Screenshot #8
Screenshot #9

Contributors

Tangat Baktybergen (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
Please login to post comments