Type of Submission
Poster
Keywords
software, driver, code, homework
Proposal
Cedarville’s cyber operations program requires students to learn how to interact with drivers in its Linux Systems Programming class. Historically, the class required students to complete a homework assignment in which they complete a driver for a virtual Linux-based device. However, this assignment proved both unideal (as a virtual device) and needlessly complex for its scope.
Our team’s goal was to develop a custom physical device and corresponding assignment to replace the previous device driver assignment. Our design criteria was as follows: a fun and simple physical device to interact with, the ability to use this device with a cloud-based virtual machine, an interactive driver, and a low manufacturing cost. In terms of manufacturing cost, our goal was to keep a reasonable cost for a set of roughly 20 units.
We decided to pursue an ESP32-S2 solution, with the goal of creating a USB Vendor-type device that could be easily passed through to a cloud VM with minimal user interaction. In an effort to create both a fun and focused assignment, we set developmental efforts on an Etch-a-sketch type device.
Our device consists of 4 main components: hardware, firmware, the device driver, and client-side software. We constructed a physical shell for the device using 3D printing, developed firmware to interact with the two integrated rotary encoders, created a driver to interface the device with the client, and built a software client program to display functionality of the device to the students.
Our assignment aspect focused on the device driver. We took our functioning device driver and pulled out pieces that we desired students to learn. Given the entire assignment, students should be able to understand how device drivers function, in how they interact with the physical device and the rest of the system itself.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.
Publication Date
2024
Sketchy Driver
Cedarville’s cyber operations program requires students to learn how to interact with drivers in its Linux Systems Programming class. Historically, the class required students to complete a homework assignment in which they complete a driver for a virtual Linux-based device. However, this assignment proved both unideal (as a virtual device) and needlessly complex for its scope.
Our team’s goal was to develop a custom physical device and corresponding assignment to replace the previous device driver assignment. Our design criteria was as follows: a fun and simple physical device to interact with, the ability to use this device with a cloud-based virtual machine, an interactive driver, and a low manufacturing cost. In terms of manufacturing cost, our goal was to keep a reasonable cost for a set of roughly 20 units.
We decided to pursue an ESP32-S2 solution, with the goal of creating a USB Vendor-type device that could be easily passed through to a cloud VM with minimal user interaction. In an effort to create both a fun and focused assignment, we set developmental efforts on an Etch-a-sketch type device.
Our device consists of 4 main components: hardware, firmware, the device driver, and client-side software. We constructed a physical shell for the device using 3D printing, developed firmware to interact with the two integrated rotary encoders, created a driver to interface the device with the client, and built a software client program to display functionality of the device to the students.
Our assignment aspect focused on the device driver. We took our functioning device driver and pulled out pieces that we desired students to learn. Given the entire assignment, students should be able to understand how device drivers function, in how they interact with the physical device and the rest of the system itself.