Moodle Plugins directory: ATmega Code Submission | Moodle.org
ATmega Code Submission
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
andLabX_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
-
Instructor sets up an assignment with ATmega plugin enabled.
-
Students upload 1 PDF + 1 ZIP.
-
The plugin:
-
Validates the file structure and size
-
Checks
.hex
compilation and ID embedding -
Flags any violations or suspicious content
-
-
Students receive instant feedback (with download option for report).
-
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
Comments