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

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.

Publication Date

2024

Share

COinS
 

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.

 

To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.