Moodle Plugins directory: ATmega Code Submission: Versions: v1.0 | Moodle.org
ATmega Code Submission
ATmega Code Submission v1.0
Automated ATmega Microcontroller Code Submission Precheck
This Moodle plugin provides automated validation for student submissions in ATmega microcontroller lab courses. It ensures students follow strict naming and formatting rules, verifies the presence and integrity of required .hex files, and assists instructors by flagging potential issues before grading.
✨ Features
📁 Submission Rules
- Requires exactly one PDF file (lab report) and one ZIP file (code and related files).
- Files must follow the naming pattern:
LabX_studentID_semester.pdf
LabX_studentID_semester.zip
(automatically renamed if necessary)
🔍 File Type and Size Validation
- Only
.pdfand.zipfiles are accepted. - File size limits:
- PDF: max 5 MB
- ZIP: max 50 MB
- ZIP content is scanned for forbidden filetypes (
.exe,.php, etc.) and nested ZIP files.
🗂️ ZIP Structure Checks
- ZIP must not contain more than 50 folders/subfolders.
- Every folder containing
.csource files must include a matching.hexfile. - Missing or unmatched
.hexfiles trigger detailed errors. - Missing
Makefilein folders also triggers an error.
⏱ Timestamp Comparison
- Flags
.cor.hfiles that are newer than their corresponding.hexfiles, indicating recompilation is required. - Warnings are displayed for such mismatches to aid student correction.
🔐 .hex File Verification
- Minimum number of required
.hexfiles is configurable per assignment. - Detects:
- Empty
.hexfiles (0 bytes) - Uncompiled placeholder files (containing
00000) - Missing embedded student ID (in ASCII hex)
- Wrong embedded student ID (mismatch with Moodle username)
- Empty
👩🏫 Teacher-Only Cheating Flags
- If embedded student ID in
.hexdoes not match Moodle ID:- A warning is saved silently and shown only to instructors.
- Teachers see these flags during grading in the submission summary.
🛑 Clear Feedback with Color Coding
- Errors: Displayed with ❌ icon and block submission.
- Warnings: Displayed with ⚠️ icon but allow submission.
- Feedback includes:
- On-screen red/green messages
- Optional downloadable
.txterror report
⚙️ Installation and Configuration
Clone or copy the plugin into your Moodle directory:
moodle/mod/assign/submission/atmegacode/Complete installation via Site administration > Notifications in Moodle.
Configure assignment settings:
- Minimum
.hexfiles - Filename prefix (e.g.
Lab1) - Semester suffix (e.g.
WS2025)
- Minimum
All options are visible when enabling this plugin inside an assignment submission settings page.
🧪 Usage
Students upload:
- One
.pdfreport - One
.ziparchive of source and compiled files
- One
The plugin performs:
- Immediate validation on upload
- Blocking feedback if rules are violated
- Success message if all checks pass
Teachers:
- See all submitted files
- Receive hidden flags if student ID issues are detected
📝 License
This plugin is licensed under the GNU General Public License v3 or later.
👤 Authors
Ivan Volosyak and Tangat Baktybergen, 2025.
Version information
- Version build number
- 2025072718
- Version release name
- v1.0
- Maturity
- Stabil versjon
- MD5 Sum
- 589e83f0babb287b9823d5f329017941
- Supported software
- Moodle 4.0, Moodle 4.1, Moodle 4.2, Moodle 4.3, Moodle 4.4, Moodle 4.5, Moodle 5.0
- The more recent release v1.1 (2025090900) exists for Moodle 4.0
- The more recent release v1.1 (2025090900) exists for Moodle 4.1
- The more recent release v1.1 (2025090900) exists for Moodle 4.2
- The more recent release v1.1 (2025090900) exists for Moodle 4.3
- The more recent release v1.1 (2025090900) exists for Moodle 4.4
- The more recent release v1.1 (2025090900) exists for Moodle 4.5
- The more recent release v1.1 (2025090900) exists for Moodle 5.0
Default installation instructions for plugins of the type Assignment submissions
- Make sure you have all the required versions.
- Download and unpack the plugin.
- Place the folder (eg "myassignsubmission") in the "/mod/assign/submission" subdirectory.
- Visit http://yoursite.com/admin to finish the installation